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...