自定義註解在springboot自動裝配中的應用

2021-09-02 17:53:40 字數 1394 閱讀 3931

springboot自動裝配核心原理:

通過@condition註解,判斷是否要將當前bean註冊到spring容器。

@condition用法:放在@bean下面,動態判斷是否需要註冊bean,@condition的判斷邏輯寫在其後括號中,示例**如下:

public

inte***ce

userdao

public

class

jdbcuserdao

implements

userdao

public

class

mongouserdao

implements

userdao

public

class

mysqldatabasetypecondition

implements

condition

}// 與上述邏輯一致

public

class

mongodbdatabasetypecondition

implements

condition

}// 根據條件來註冊不同的bean

@configuration

public

class

@bean

@conditional

(mongodbdatabasetypecondition.

class

)public userdao mongouserdao()

}

step1:實現自定義註解
@target()

@retention

(retentionpolicy.runtime)

@documented

@conditional

(databasetypecondition.

class

)public @inte***ce

databasetype

step2:實現條件邏輯
public

class

databasetypecondition

implements

condition

}

step3:使用自定義註解
@configuration

@componentscan

public

class

@bean

@databasetype

("mongodb"

)public userdao mongouserdao()

}

參考:

自定義註解

target elementtype.field retention retentionpolicy.runtime public inte ce setvalue以上就是乙個自定義的註解,下面來進行說明。target elementtype.field 表示支援該註解的程式元素,field就是屬性...

自定義註解

三個重要元註解 target 即註解的作用域,用於說明註解的使用範圍 即註解可以用在什麼地方,比如類的註解,方法註解,成員變數註解等等 elemenettype.constructor 構造器宣告 elemenettype.field 域宣告 包括 enum 例項 elemenettype.loca...

自定義註解

三個重要元註解 target 即註解的作用域,用於說明註解的使用範圍 即註解可以用在什麼地方,比如類的註解,方法註解,成員變數註解等等 elemenettype.constructor 構造器宣告 elemenettype.field 域宣告 包括 enum 例項 elemenettype.loca...