spring自動裝配與spring_bean之間的關係(二)

又見藤蔓發表於2017-01-04

關於自動裝配:

XML配置裡的Bean自動裝配
1 SpringIOC容器可以自動裝配Bean,需要做的僅僅是在<bean>的autowire屬性裡指定自動裝備的模式
2 byType(根據型別自動裝配):若IOC容器中有多個與目標Bean型別一直的bean,在這種情況下,Spring將無法判定哪個bean最合適該屬性,所以不能執行自動裝配
3 byName(根據名稱自動裝配):必須將目標bean的名稱和屬性名設定的完全相同
4 constructor(通過構造器自動裝配):當bean中存在多個構造器時,此種自動裝配方式將會很複雜,不推薦使用
XML配置裡的bean自動裝配的缺點
在bean配置檔案裡設定autowire屬性進行自動裝配將會裝配bean的所有屬性,然而,若只希望裝配個別屬性時,autowire屬性就不夠靈活了
autowire屬性要麼根據型別自動裝配,要麼根據名稱自動裝配,不能兩者兼而有之
一般情況下,在實際的專案中很少使用自動裝配功能,因為和自動裝配功能所帶來的好處比起來,明確清晰的配置文件有說服力些


bean之間的關係 繼承與依賴
Spring允許繼承bean的配置,被繼承的bean稱為父bean,繼承這個父bean的bean稱為子bean
子bean從父bean中繼承配置,包括bean的屬性配置
子bean也可以覆蓋從父bean繼承過來的配置
父bean可以作為配置模板,也可以作為bean例項,若只想把父bean作為模板,可以設定<bean>的abstract屬性為true,這樣spring將不會例項化這個bean
並不是<bean>元素裡的所有屬性都會被繼承,比如:autowire,abstract等
也可以忽略父bean的class屬性,讓子bean指定自己的類,而共享相同的屬性配置,但此時abstract必須設為true

依賴bean配置
Spring允許使用者通過depends-on屬性設定bean前置依賴的bean,前置依賴的bean會在本bean例項化之前建立好
如果前置依賴於多個bean,則可以通過逗號,空格或的方式配置bean的名稱


相關文章