Spring為IOC容器注入Bean的五種方式

2021-10-01 20:03:32 字數 2047 閱讀 1210

1

//類中元件統一設定。滿足當前條件,這個類中配置的所有bean註冊才能生效;

2 @conditional()

3@configuration

4 @import()5//

@import匯入元件,id預設是元件的全類名

6public

class

mainconfig2

3536

/**37

* @conditional() : 按照一定的條件進行判斷,滿足條件給容器中註冊bean

38*

39* 如果系統是windows,給容器中註冊("bill")

40* 如果是linux系統,給容器中註冊("linus")

41*/

4243 @bean("bill")

44public

person person01()

4748 @conditional(linuxcondition.class

)49 @bean("linus")

50public

person person02()

5354

/**55

* 給容器中註冊元件;

56* 1)、包掃瞄+元件標註註解(@controller/@service/@repository/@component)[自己寫的類]

57* 2)、@bean[匯入的第三方包裡面的元件]

58* 3)、@import[快速給容器中匯入乙個元件]

59* 1)、@import(要匯入到容器中的元件);容器中就會自動註冊這個元件,id預設是全類名

60* 2)、importselector:返回需要匯入的元件的全類名陣列;

61* 3)、importbeandefinitionregistrar:手動註冊bean到容器中

62* 4)、使用spring提供的 factorybean(工廠bean);

63* 1)、預設獲取到的是工廠bean呼叫getobject建立的物件

64* 2)、要獲取工廠bean本身,我們需要給id前面加乙個&

65* &colo***ctorybean

66*/

67@bean

68public

colo***ctorybean colo***ctorybean()

1

springboot有大量的@condition***x註解23

public

class linuxcondition implements

condition 27​

28return

false;29

}30​31 }

1

public

class myimportselector implements

importselector ;10}

11​12 }

1

public

class myimportbeandefinitionregistrar implements

importbeandefinitionregistrar 20}

21​22 }

1 / /建立乙個spring定義的factorybean

2public

class colo***ctorybean implements factorybean11​

12@override

13public class<?>getobjecttype() 17​

18//

是單例?

19//

true:這個bean是單例項,在容器中儲存乙份

20//

false:多例項,每次獲取都會建立乙個新的bean;

21@override

22public

boolean

issingleton() 26​

27}28 ​

Spring學習01 IOC容器(簡介,注入)

1 ioc ioc 控制反轉 本來應該有應用程式管理的物件之間的依賴關係,現在交給容器管理,這就是控制反轉的定義,即交給了ioc容器。spring的ioc主要是依賴於di 注入 實現的,不需要應用程式去主動查詢,物件的查詢 定位 建立都交由容器管理。2 spring的優勢 1 大量減少了factor...

Spring動態獲取IoC容器中管理的Bean

spring框架將di模式發揮到了極至,因此,系統裡面用spring管理的bean相互之間的獲取是非常方便的,只要使用者提供乙個setter方法並在配置檔案中配置該屬性就可以。但是,對於系統中非spring框架管理的類,如果需要獲取spring管理的類,或者,程式中需要動態的根據be an的id來獲...

Spring動態獲取IoC容器中管理的Bean

spring框架將di模式發揮到了極至,因此,系統裡面用spring管理的bean相互之間的獲取是非常方便的,只要使用者提供乙個setter方法並在配置檔案中配置該屬性就可以。但是,對於系統中非spring框架管理的類,如果需要獲取spring管理的類,或者,程式中需要動態的根據be an的id來獲...