在類上宣告 @component、@configuration、@restcontroller、@service、@repository 等註解,表示這個類需要被注入ioc容器。
@configuration 常用來和 @bean 配合使用,來注入第三方元件。
例子:注入 druid 資料來源
通過實現介面 factorybean 來注入@configuration
public class druidconfig
}
例子:利用 factorybean 注入 dog
// 實現 factorybean
public class dogfactorybean implements factorybean
// 型別
@override
public class<?> getobjecttype()
// 是否單例,true表示是單例
@override
public boolean issingleton()
}// 注入 dogfactorybean
@configuration
public class myconfig
}
通過名字 dog 可以獲取容器中的 dog 物件;如果想獲取 dogfactorybean 物件,可以用 &dog 來獲取。在類上宣告,可以快速注入多個第三方的類,常配合 importselector、importbeandefinitionregistrar 使用
例子:注入 dog、cat 類
方式 1:註解注入
方式 2:實現介面 importselector@import()
public class myconfig {}
方式 3:實現介面 importbeandefinitionregistrar// 實現 importselector
public class myimport implements importselector ;
}}// 匯入 myimport
@import()
public class myconfig {}
可以自定義滿足條件後才注入元件。// 實現 importbeandefinitionregistrar
public class myimportbean implements importbeandefinitionregistrar
}// 匯入 myimportbean
@import()
public class myconfig {}
例子:當容器中存在 dog 時,才注入 cat
springboot 提供了一些 @conditional 的實現// 實現 condition
public class mycondition implements condition
}return false;
}}// 按條件注入 cat
@configuration
public class myconfig
}
springboot 提供的配置生效順序的註解@conditionalonclass:存在該類時生效
@conditionalonbean:存在該bean是生效
@conditionalonproperty:配置正確時生效
@conditionalonresource:資源存在是生效
@autoconfigureafter:在指定的配置類生效後再注入
@autoconfigurebefore:在指定的配置類生效後再注入
Spring通過 Value註解注入屬性的幾種方式
場景 假如有以下屬性檔案dev.properties,需要注入下面的tag tag 123 通過propertyplaceholderconfigurer value private string tag 通過preferencesplaceholderconfigurer value privat...
spring註解注入
註解 就是乙個類,使用 註解名稱 開發中 使用註解 取代 xml配置檔案。預設情況下註解不生效,需要開啟註解功能。通過下面的配置開啟 component取代 component沒有配置id時,通過型別獲取bean,型別可以寫介面類也可以寫實現類 2 component id 取代 web開發,提供3...
Spring 註解及註解注入
compoment 標註成spring乙個普通的bean autowired 被用來實現自動 裝配,可以用來標註成員變數 方法 建構函式。當出現多個同型別當bean時 如兩個類都實現了同乙個介面 這時候spring不知道該繫結哪個實現類,就會丟擲beancreationexception異常。這時候...