Spring通過註解注入元件

2022-08-26 10:03:07 字數 1985 閱讀 7194

在類上宣告 @component、@configuration、@restcontroller、@service、@repository 等註解,表示這個類需要被注入ioc容器。

@configuration 常用來和 @bean 配合使用,來注入第三方元件。

例子:注入 druid 資料來源

@configuration

public class druidconfig

}

通過實現介面 factorybean 來注入

例子:利用 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:註解注入

@import()

public class myconfig {}

方式 2:實現介面 importselector

// 實現 importselector

public class myimport implements importselector ;

}}// 匯入 myimport

@import()

public class myconfig {}

方式 3:實現介面 importbeandefinitionregistrar

// 實現 importbeandefinitionregistrar

public class myimportbean implements importbeandefinitionregistrar

}// 匯入 myimportbean

@import()

public class myconfig {}

可以自定義滿足條件後才注入元件。

例子:當容器中存在 dog 時,才注入 cat

// 實現 condition

public class mycondition implements condition

}return false;

}}// 按條件注入 cat

@configuration

public class myconfig

}

springboot 提供了一些 @conditional 的實現

@conditionalonclass:存在該類時生效

@conditionalonbean:存在該bean是生效

@conditionalonproperty:配置正確時生效

@conditionalonresource:資源存在是生效

springboot 提供的配置生效順序的註解

@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異常。這時候...