亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

SpringXML配置十二個最佳實踐

2019-11-18 11:37:34
字體:
來源:轉載
供稿:網友

  在這篇文章里,對于SPRing xml的配置,我將向你展示12種比較好的實踐。其中的一些實踐不僅是好的實踐,更是必要的實踐。除此以外,還有其他因素,例如領域模型的設計,都能影響XML的配置,但是這篇文章重點研究XML配置的易讀性和易治理性。

  1。不要使用autowiring

  Spring可以通過類的自省來自動綁定其依靠部分,使得你不必明確指明bean的屬性和構造器。Bean的屬性可以通過屬性名稱或類型匹配來實現自動綁定。構造器通過類型匹配來實現自動綁定。你甚至可以指定自動檢測自動綁定模式,它可以引導Spring選擇一種適當的運行機制。先來看看下面的一個例子:
            class="com.lizjason.spring.OrderService"
        autowire="byName"/>
  OrderService類的屬性名在容器中用于匹配bean實例。自動綁定可以潛在地節省一些打字和減少一些混亂。但是在現實世界的工程里你不應該使用這種方式,這是因為它犧牲了配置的清楚性和可維護性。許多指南和介紹中大量吹捧自動綁定是Spring的一種極好的特征而沒有提到這一特性所帶來的犧牲。依我的觀點,這就像Spring中的object-pooling,它更像是一種為了占據更多市場的商業特征。它對于XML配置文件的小巧化是一個好辦法,但實際上也增加了復雜程度,尤其當你運行有大量類聲明的工程時。雖然Spring答應你混合自動綁定和手動綁定,但是這個矛盾會使XML配置更加晦澀難懂。

  2.使用通俗的命名

  這個方式對于java編碼也一樣適用。在工程中使用清楚的、描述性的、協調的通俗名稱對于開發者理解XML配置是十分有益的。例如對于bean ID,你可以根據通俗的Java類名來命名它。對于例子中OrderServiceDAO的bean ID命名為orderServiceDAO。對于大的工程,你可以在bean ID前面加上包名作為前綴。

  3. 使用簡潔的形式

  簡潔形式避免了冗長,是因為它從子元素中將屬性值和參考寫到屬性中。例如下面的例子:
            class="com.lizjason.spring.OrderService">
        
            lizjason
        

        
            
        

    


  可以使用簡潔形式將上述代碼重寫為:
            class="com.lizjason.spring.OrderService">
                    value="lizjason"/>
        
    

  簡潔形式功能在1.2版本中可以使用。對于沒有簡潔形式。
簡潔形式不但可以節約你的打字,而且可以使XML配置文件清楚。它最引人注目的是當在一個配置文件中有大量定義的類時可以提高易讀性。

  4. 對于構造器參數匹配,類型名比序號好。

  當一個構造器含有一個以上的同種類型的參數,或者屬性值的標簽已經被占用時,Spring答應你使用從0計數的序號來解決這些會帶來混淆的問題。例如:
            class="com.lizjason.spring.BillingService">
        
        
    


  像下面這樣,利用類型屬性來編寫會更好一些:
            class="com.lizjason.spring.BillingService">
                    value="lizjason"/>
        
    

  使用索引可以稍稍減少一些冗長,但是和使用類型屬性相比,它還是有輕易發生錯誤的傾向和難于閱讀的缺點。你應該只在構造器參數不明確的時候,才使用索引這一方法。

  5. 盡可能重用已定義過的bean

  Spring提供一種類似繼續一樣的機制來減少配置信息的復制并簡化XML配置。定義一個子類可以從它父類那里繼續配置信息,而父類實質上作為子類的一個模板。這就是大工程中所謂的重用。你所需要做的就是在父類bean中設置abstract=true,然后在子bean注明它自己的父類bean。例如:
            class="com.lizjason.spring.AbstractService">
                    value="lizjason"/>
    


    ippingService
        parent="abstractService"
        class="com.lizjason.spring.ShippingService">
        
    

  ShippingService類從abstractService類那里繼續companyName屬性的值――lizjason。假如你沒有為一個bean指明類或factory方法,那么這個bean便是抽象的。

  6. 盡量使用applicationContext來裝配定義的bean

  像在Ant腳本中的引用一樣,Spring的引用對于裝配模塊化的bean來說是很有用的。例如:
    
        
        
                    class="com.lizjason.spring.OrderService"/>
    
  相對于使用import在XML配置中來預裝配,通過ApplicationContext來配置這些beans,顯得更加靈活。利用ApplicationContext也使得XML配置易于治理。你可以像下面的例子那樣在ApplictionContext構造器里布置bean:
    String[] serviceResources =
        {"orderServices.xml",
        "billingServices.xml",
        "shippingServices.xml"};
    ApplicationContext orderServiceContext = new
        ClassPathXmlApplicationContext(serviceResources);
  7. 利用id作為bean的標識符

  你可以指定一個id或名稱來作為bean的標識符。雖然使用id不會提高易讀性,但是它可以讓XML parser對bean的引用有效方面進行更好的驗證。假如由于XML IDREF的限制而不能使用某個id,你可以利用names來作為bean的標識符。XML IDREF的限制是id必須以字母開頭(或者在XML規范中定義的標點符號),后面接著字母,數字,連字號,下劃線,冒號等。實際上,碰到XML IDREF限制的問題是很少見的。

  8. 在開發階段使用依靠檢驗

  你可以在bean中給依靠檢驗的屬性設置值,而不采用原先默認的空值,屬性設置例如simple,object或all,以便容器進行依靠檢驗。當bean的全部的屬性(或某類屬性)需要被明確設置或自動綁定時,依靠檢驗便顯得很有用。
            class="com.lizjason.spring.OrderService"
        dependency-check="objects">
                    value="lizjason"/>
        
    
  在這個例子里,容器確保為orderService bean設置的屬性不是primitives 或者 collections。為所有的bean設置默認依靠檢測也是可以的,但是我們很少這樣做,是因為有些bean的屬性根本就不必設置。

  9. 為每個配置文件加上一個header comment

  最好使用descriptive id和名稱來代替在XML配置文件中的注釋。此外,加上一個配置文件header也很有用處,它可以概述文件中所定義的bean。你可以選擇將描述內容加入description標簽中。例如:
    
        
            This file defines billing service
            related beans and it depends on
            baseServices.xml,which provides
            service bean templates...
        

        ...
    

  使用description標簽的一個好處是可以輕易地利用工具從標簽中選取出description(的內容)。

  10. 對于任何變化,要與隊友積極交流

  當你重構Java代碼時,你需要隨時更新配置文件并且通知隊友。XML配置文件也是代碼,它們是應用程序的至關重要的部分,但是它們難于閱讀和維護。大部分時間你既要閱讀XML配置文件又要閱讀運行中的Java代碼。

  11. Setter injection優于constructor injection

  Spring提供3種類型的依靠注入: constructor injection,setter injection, 和method injection。我們一般只用前兩種類型。
            class="com.lizjason.spring.OrderService">
        
    


            class="com.lizjason.spring.BillingService">
                    ref="billingDAO">
    



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线免费视频| 国产日韩综合一区二区性色av| 久久午夜a级毛片| 日韩精品一区二区视频| 日韩高清电影好看的电视剧电影| 欧美在线www| 日本中文字幕久久看| 欧美国产日韩一区| 亚洲高清一区二| 欧美怡春院一区二区三区| 亚洲欧美日韩一区在线| 欧美性高潮床叫视频| 国产精品久久久久久久久久久新郎| 国产欧美久久久久久| 国产91色在线| 97在线视频免费观看| 欧美日本亚洲视频| 国产亚洲成精品久久| 欧美电影免费播放| 国产精品自产拍在线观看中文| 高清视频欧美一级| 日韩精品久久久久| 中文字幕免费国产精品| 久久五月天色综合| 久久99视频免费| 亚洲第一区在线| 91精品国产乱码久久久久久久久| 日本欧美精品在线| 欧美日韩中文字幕综合视频| 精品一区电影国产| 亚洲女人天堂成人av在线| 亚洲毛片在线观看.| 久久久影视精品| 九色精品免费永久在线| 国产成人一区二区| 亚洲人a成www在线影院| 国产日本欧美一区二区三区在线| 色樱桃影院亚洲精品影院| 姬川优奈aav一区二区| 青草青草久热精品视频在线观看| 久热精品视频在线观看| 亚洲激情中文字幕| 欧美性生交xxxxx久久久| 亚洲人成伊人成综合网久久久| 亚洲跨种族黑人xxx| 91免费电影网站| 96pao国产成视频永久免费| 2019最新中文字幕| 色av中文字幕一区| 亚洲最新中文字幕| 久久精品国产一区二区三区| 欧美电影电视剧在线观看| 国产精品久久久久久久av电影| yw.139尤物在线精品视频| 欧美另类xxx| 国产成人一区二区三区电影| 中文字幕日韩视频| 亚洲成人a级网| 欧美二区乱c黑人| 亚洲福利视频专区| 色综合视频网站| 亲爱的老师9免费观看全集电视剧| 国产精品吹潮在线观看| 日本一区二区三区四区视频| 777午夜精品福利在线观看| 亚洲精品久久久久中文字幕欢迎你| 欧美成人免费va影院高清| 欧美午夜久久久| 国产一区二区三区网站| 91免费综合在线| 亚洲天天在线日亚洲洲精| 精品国产拍在线观看| 国产成人精品一区| 成人免费视频网址| 日韩精品极品视频免费观看| 欧美日韩加勒比精品一区| 国产精品普通话| 成人黄色av免费在线观看| 色狠狠久久aa北条麻妃| 88xx成人精品| 久久精品男人天堂| 国产欧美精品va在线观看| 欧美一级高清免费| 欧美日韩在线免费观看| 国模精品视频一区二区三区| 日韩欧美在线一区| 日韩欧美中文字幕在线播放| 亚洲精品久久久一区二区三区| 久久国产色av| 久久久久久亚洲| 亚洲激情视频在线观看| 全亚洲最色的网站在线观看| 热久久免费视频精品| 欧美久久久精品| 亚洲欧美日韩中文在线制服| 日产精品99久久久久久| 日韩精品免费在线视频观看| 欧洲成人免费aa| 久久久久久久激情视频| 亚洲第一av在线| 国产精品亚洲精品| 亚洲色图综合网| 日韩免费在线播放| 色爱av美腿丝袜综合粉嫩av| 久久好看免费视频| 亚洲第一黄色网| 国产精品久久97| 色婷婷久久一区二区| 国产精品99免视看9| 久久躁日日躁aaaaxxxx| 美女啪啪无遮挡免费久久网站| 国内精品中文字幕| 久久久久久国产免费| 亚洲欧美制服另类日韩| 国产成人福利视频| 这里只有精品在线播放| 色偷偷亚洲男人天堂| 欧美资源在线观看| 97av在线视频| 自拍偷拍亚洲欧美| 国产日产久久高清欧美一区| 美女999久久久精品视频| 大桥未久av一区二区三区| 久久亚洲国产精品| 亚洲免费电影在线观看| 亚洲欧美国产日韩天堂区| 日本高清+成人网在线观看| 日韩精品免费在线观看| www高清在线视频日韩欧美| 欧美一级bbbbb性bbbb喷潮片| 青青草精品毛片| 日韩av日韩在线观看| 欧美日韩福利在线观看| 青青精品视频播放| 国产精品久久久久久av下载红粉| 久久av.com| 国产精品视频免费在线| 一区国产精品视频| 亚洲第一偷拍网| 97激碰免费视频| 亚洲欧洲在线看| 国产ts一区二区| 亚洲大胆人体视频| 久久精品国产2020观看福利| 91日本视频在线| 欧美高清视频免费观看| 欧美色另类天堂2015| 欧美日韩美女在线| 亚洲老司机av| 色综合91久久精品中文字幕| 亚洲欧美日韩国产精品| 日韩一区av在线| 亚洲а∨天堂久久精品9966| 在线观看中文字幕亚洲| 久久免费视频网站| 欧美激情精品久久久久久大尺度| 亚洲第一页自拍| 中文字幕亚洲欧美日韩高清| 国产精品69久久久久| 国产精品久久久久久久久| 操日韩av在线电影| 青青精品视频播放| 美女999久久久精品视频| 性欧美视频videos6一9|