Spring總結(一)

Bean的自動裝配

  • 經過@ComponentScan掃描發現將要裝配到ApplicationContext中的Bean@ComponentScan中若是沒有寫包名,那麼默認掃描當前修飾類同包名。經過掃掃描裝配的類有一個默認ID,就是把類的名字首字母小寫的類名。
  • 經過@Autowire知足Bean的依賴,依賴的地方能夠寫接口,可是若是在容器中沒有實現類或者有多個實現類的時候,報出裝配異常。
  • @Configuration用來修飾一個類,表示這個類是用來生成Bean用的,若是這個類上有ComponentScan,則自動裝配。若是這個類的方法有@Bean修飾,就成爲第二種Bean的裝配方式:Java代碼生成Bean;
  • 要自動裝配的類要保留默認構造函數,須要裝配的屬性使用@Autowire來裝配。

Java代碼裝配Bean

  • 在一些狀況下,第三方的類庫中的類想要歸入到容器管理,這種狀況自動裝配是實現不了的。只能採用顯示裝配。顯示裝配分爲兩種,一種是Java代碼裝配,一種是Xml裝配。JavaConfig文件使用Java類書寫,不含有任何的業務邏輯,只是裝配Bean的配置信息,通常在項目中分開到單獨的包中書寫。
  • 使用@Configuration標註一個類成爲配置類。
    使用@Bean修飾一個方法來表示在容器中實例化一個類。在被@Bean修飾的方法中,能夠使用任何一種方式構建一個Bean並返回,返回的對象實例會被註冊到容器中。默認狀況下,裝配的Bean的ID是方法的名字。

使用Xml配置:

基本配置

<beans>
<bean id="person" class="com.example.Person" />
</beans>
  • 其中bean屬性的ID能夠省略,會自動生成一個全類名#No樣子的ID名稱。
    和JavaConfig相比,上面這種形式的xml中的Bean是Spring調用默認構造函數生成的。

也能夠使用下面的構造函數的參數的方式來進行裝配Bean:

<bean id="cdPlayer" class="soundsystem.CDPlayer">
<constructor-arg ref="compactDisc" />
</bean>
  • 在一個Spring環境的應用中,Bean裝配方式能夠混合。在進行依賴注入的時候,Autoware並不區分Bean的構造來源。
相關文章
相關標籤/搜索