3.在IOC容器中裝配Bean

1.spring的bean的三種配置方式:基於XML、基於註解、基於Java類。
   基於XML的配置,spring2.0以後使用Schema格式(書P82)。
   注1:針對xml文檔的schema約束,Spring是把XSD文件放到本地了,再在spring.schemas裏做了一個映射,優先從本地裏加載XSD文件。
   注2:xml可引入<![CDATA[ ]]>特殊處理標籤,作用是讓XML解析器將標籤中的字符串當作普通的文本對待,防止某些字符串對XML個數造成破壞。
   注3:null值對應標籤<null/>

2.bean的命名:指定id屬性(正常情況都用這個)或者指定name屬性
   id的命名需要滿足XML對id的命名規範:必須以字母開頭,後面可以是字母、數字、連字符、下劃線、句號、冒號等完整結束的符號,空格和逗號這些非完整結束符是非法的; name屬性沒有字符上的限制,幾乎可以使用任何字符。
  spring配置文件不允許出現兩個相同的id的bean,但卻可以出現兩個相同name的bean,如果多個name相同的bean,後面的將覆蓋前面的bean。
  如果id與name都未指定,spring自動將全限定類名作爲Bean的名稱。如果多個實現類相同的匿名bean,後面的加#加數字。

3.依賴注入三種方式:屬性注入、構造函數注入、接口注入(工廠注入)。
   注:通過屬性注入時,一般情況下,java的屬性變量名都以小寫字母開頭。必須滿足“變量的前兩個字母要麼全部大寫,要麼全部小寫”的要求。
   構造函數注入:按類型匹配入參、按索引匹配入參、聯合使用類型和索引匹配入參通過自身類型反射匹配入參。(書P91)

4.引用其他bean:<ref>元素可以通過以下三個屬性引用容器中其他bean:bean、local、parent。
   bean:通過該屬性可以引用同一容器或父容器的bean,這是最常見的形式
   local:通過該屬性只能引用同一配置文件中定義的bean,在開發時它可以利用XML解析器自動檢驗引用的合法性。
   parent:引用父容器中的Bean,如<ref parent="car">的配置說明car的Bean是父容器中的Bean。

5.集合類型屬性:主要包括List、Set、Map、Properties,Spring爲這些集合類型屬性提供了專門的配置元素標籤。(書P99)

6.簡化配置方式(書P103)

7.自動裝配:bean元素提供了一個指定自動裝配類型的屬性:autowire="<自動裝配類型>" 
   spring提供了4種自動裝配類型:byName、byType、constructor、autodetect。
   注:與之類似的,利用註解實現spring基本配置:如http://blog.csdn.net/vstar283551454/article/details/8683708
         在Java代碼中使用@Autowired或@Resource註解方式進行裝配 ,這兩個註解的區別是:@Autowired默認按類型裝配,@Resource默認按名稱裝配,當找不到名稱匹配的bean纔會按類型裝配
   
8.如果要實現在單實例對象獲取多實例屬性對象:通過實現BeanFactoryAware接口或者lookup方法注入。(書P107)

9.整合多個配置文件:spring允許我們通過<import>元素將多個配置文件引入到一個文件中。

10.bean作用域:singleton(默認單例)、prototype、request、session、globalSession。
     後面三個是在web項目裏,同時還需要在配置文件中添加http請求的過濾器或監聽器。

11.基於註解的配置(書P120):
    1>註解定義bean: @Component:普通bean; @Repository:對DAO實現類標註; @Service:對Service實現類進行標註; @Controller:對Controller實現類標註;
    2>通過註解定義bean與<bean>元素配置一樣,默認作用域singleton,可通過@Scope註解修改作用域。
        @PostConstruct和@PreDestroy註解與init-method、destroy-method屬性一樣,指定bean的初始化及容器銷燬前執行的方法。
    3>通過context命名空間提供通過掃描類包以應用註解特定Bean的方式,可以使用過濾表達式。
    4>自動裝配bean: 使用@Autowired:@Autowired 默認按類型匹配方式,在容器查找匹配bean
        如果容器有1個以上匹配bean時,使用@Qualifier指定注入bean的名稱
   
12.bean不同配置方式比較(書P133)
 
 
一般可以採用XML配置DataSource、SessionFactory等資源Bean,在XML中利用aop、context命名空間進行相關主題的配置。其他所有項目中開發的Bean,都通過基於註解配置的方式進行配置,即整個項目採用“基於XML+基於註解”的配置方式,很少採用基於Java類的配置方式。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章