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()
1springboot有大量的@condition***x註解23
public
class linuxcondition implements
condition 27
28return
false;29
}3031 }
1public
class myimportselector implements
importselector ;10}
1112 }
1public
class myimportbeandefinitionregistrar implements
importbeandefinitionregistrar 20}
2122 }
1 / /建立乙個spring定義的factorybean2public
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來獲...