1. 程式人生 > >Spring實戰第四版筆記-(2)裝配Bean

Spring實戰第四版筆記-(2)裝配Bean

一、Spring配置的可選方案  

  建立應用物件之間協作關係的行為通常稱為裝配(wiring),這也是依賴注入(DI)的本質。Spring裝配容器最常見有三種方法:

  1、在XML中進行顯式配置;

  2、在Java中進行顯式配置(JavaConfig);

  3、隱式的bean發現機制和自動裝配(基於註解)。

  Spring的配置風格是可以互相搭配的,所以你可以選擇使用XML裝配一些bean,使用Spring基於Java的配置(JavaConfig)來裝配另一些bean,而將剩餘的bean讓Spring去自動發現。即便如此,我的建議是儘可能地使用自動配置的機制。顯示配置越少越好。當必須要顯示配置bean的時候(比如有些原始碼不是由你來維護的,而當你需要為這些程式碼配置bean的時候),我推薦使用型別安全並且比XML更加強大的JavaConfig。最後,只有當你想要使用便利的XML名稱空間,並且在JavaConfig中沒有同樣的實現時,才應該使用XML。Spring框架的核心是Spring容器。

二、自動化裝配Bean(隱式的bean發現機制和自動裝配)

  Sprign從兩個角度來實現自動化裝配:

  1、元件掃描(component scanning):Spring會自動發現應用上下文中建立的bean。

  2、自動裝配(autowiring):Spring自動滿足bean之間的依賴。

  元件掃描和自動裝配組合在一起就能發揮出強大的威力,它們能夠將你的顯示配置降低到最少(元件掃描需要去顯示的開啟)。

三、一些註解:

  @Configuration 配置註解,告訴Spring這個類為配置類。

  @Component("Id") 元件註解,這個註解會告知Spring去為該類建立bean,Id除非特殊宣告否則將使用預設的。

  @ComponentScan 元件掃描註解,通常配置在配置類中,宣告對某個類(@ComponentScan(basePackageClasses={Class1.class,Class2.class}))或某個包(@ComponentScan(basePackages={"package1","package2"}))中的元件進行掃描生成bean加入到容器中。

  @Autowired 自動裝載,根據引用型別進行裝載。該註解不僅能用在構造方法上還能用在Setter方法上,如:

      

  @ImportResource 在JavaConfig匯入XML的配置,如:@ImportResource("classpath:cd-config.xml")

  @Import JavaConfig匯入其他的JavaConfig,可以一次性匯入多個,如:@Import({CDPlayerConfig.class,CDConfig.class})

  XML可以使用<import resource = "cd-config.xml" /> 匯入其他的XML配置,匯入JavaConfig的配置需要使用<bean class = "soundpackage.CDConfig" />,目前沒有其他熟知的元素能夠用來將Java配置匯入到XML配置中。