<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    內蒙古java團隊

    j2se,j2ee開發組
    posts - 139, comments - 212, trackbacks - 0, articles - 65
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    用XML配置的6個最佳實踐總結[轉]

    Posted on 2009-06-04 16:14 帥子 閱讀(278) 評論(0)  編輯  收藏 所屬分類: j2se技術專區
    ?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配置是十分有益的。例如對于beanID,你可以根據通俗的Java類名來命名它。對于例子中OrderServiceDAO的beanID命名為orderServiceDAO。對于大的工程,你可以在beanID前面加上包名作為前綴。

    ??????? 3.使用簡潔的形式   

    ??????? 簡潔形式避免了冗長,是因為它從子元素中將屬性值和參考寫到屬性中。
    ??????? 例如下面的例子: class="com.lizjason.spring.OrderService"> lizjason   可以使用簡潔形式將上述代碼重寫為: class="com.lizjason.spring.OrderService">   簡潔形式功能在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"> 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"};?ApplicationContextorderServiceContext=new?ClassPathXmlApplicationContext(serviceResources);
    主站蜘蛛池模板: 57pao一国产成永久免费| 777爽死你无码免费看一二区| 亚洲日本VA午夜在线影院| 亚洲va在线va天堂va四虎| 久久综合亚洲色一区二区三区| 亚洲一级毛片免费看| 色偷偷亚洲男人天堂| 男女拍拍拍免费视频网站| 2019中文字幕在线电影免费 | 狠狠躁狠狠爱免费视频无码| 成人无码WWW免费视频| 美女内射毛片在线看免费人动物| 女人18毛片特级一级免费视频 | 丁香花免费完整高清观看| 国产无遮挡吃胸膜奶免费看视频| 国产精品深夜福利免费观看| 国产亚洲大尺度无码无码专线| 亚洲的天堂av无码| 四虎影视在线看免费观看| 97精品免费视频| 免费在线观看毛片| 亚洲国产高清美女在线观看| 免费手机在线看片| 免费无码肉片在线观看| 中文字幕人成人乱码亚洲电影 | 亚洲色无码专区一区| 久久久久免费视频| 精品久久久久成人码免费动漫 | 四虎精品亚洲一区二区三区| 亚洲一区二区成人| 丰满少妇作爱视频免费观看| 黄色成人免费网站| 亚洲人成图片小说网站| 亚洲国产区男人本色| 免费A级毛片无码A∨中文字幕下载| 免费a级毛片永久免费| 亚洲av永久无码精品天堂久久| fc2免费人成为视频| 我的小后妈韩剧在线看免费高清版 | 日本一区二区三区日本免费| 亚洲AV永久无码精品一百度影院|