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

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

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

    內(nèi)蒙古java團(tuán)隊(duì)

    j2se,j2ee開發(fā)組
    posts - 139, comments - 212, trackbacks - 0, articles - 65
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    ?1.不要使用autowiring   

    ??????? Spring可以通過(guò)類的自省來(lái)自動(dòng)綁定其依賴部分,使得你不必明確指明bean的屬性和構(gòu)造器。Bean的屬性可以通過(guò)屬性名稱或類型匹配來(lái)實(shí)現(xiàn)自動(dòng)綁定。構(gòu)造器通過(guò)類型匹配來(lái)實(shí)現(xiàn)自動(dòng)綁定。你甚至可以指定自動(dòng)檢測(cè)自動(dòng)綁定模式,它可以引導(dǎo)Spring選擇一種適當(dāng)?shù)倪\(yùn)行機(jī)制。
    先來(lái)看看下面的一個(gè)例子: class="com.lizjason.spring.OrderService" autowire="byName"/>   
    OrderService類的屬性名在容器中用于匹配bean實(shí)例。自動(dòng)綁定可以潛在地節(jié)省一些打字和減少一些混亂。但是在現(xiàn)實(shí)世界的工程里你不應(yīng)該使用這種方式,這是因?yàn)樗鼱奚伺渲玫那逦院涂删S護(hù)性。許多指南和介紹中大量吹捧自動(dòng)綁定是Spring的一種極好的特征而沒有提到這一特性所帶來(lái)的犧牲。依我的觀點(diǎn),這就像Spring中的object-pooling,它更像是一種為了占據(jù)更多市場(chǎng)的商業(yè)特征。它對(duì)于XML配置文件的小巧化是一個(gè)好辦法,但實(shí)際上也增加了復(fù)雜程度,尤其當(dāng)你運(yùn)行有大量類聲明的工程時(shí)。雖然Spring允許你混合自動(dòng)綁定和手動(dòng)綁定,但是這個(gè)矛盾會(huì)使XML配置更加晦澀難懂。

    ??????? 2.使用通俗的命名   

    ??????? 這個(gè)方式對(duì)于Java編碼也一樣適用。在工程中使用清晰的、描述性的、協(xié)調(diào)的通俗名稱對(duì)于開發(fā)者理解XML配置是十分有益的。例如對(duì)于beanID,你可以根據(jù)通俗的Java類名來(lái)命名它。對(duì)于例子中OrderServiceDAO的beanID命名為orderServiceDAO。對(duì)于大的工程,你可以在beanID前面加上包名作為前綴。

    ??????? 3.使用簡(jiǎn)潔的形式   

    ??????? 簡(jiǎn)潔形式避免了冗長(zhǎng),是因?yàn)樗鼜淖釉刂袑傩灾岛蛥⒖紝懙綄傩灾小?br />??????? 例如下面的例子: class="com.lizjason.spring.OrderService"> lizjason   可以使用簡(jiǎn)潔形式將上述代碼重寫為: class="com.lizjason.spring.OrderService">   簡(jiǎn)潔形式功能在1.2版本中可以使用。對(duì)于沒有簡(jiǎn)潔形式。   簡(jiǎn)潔形式不但可以節(jié)約你的打字,而且可以使XML配置文件清晰。它最引人注目的是當(dāng)在一個(gè)配置文件中有大量定義的類時(shí)可以提高易讀性。

    ??????? 4.對(duì)于構(gòu)造器參數(shù)匹配,類型名比序號(hào)好。   

    ??????? 當(dāng)一個(gè)構(gòu)造器含有一個(gè)以上的同種類型的參數(shù),或者屬性值的標(biāo)簽已經(jīng)被占用時(shí),Spring允許你使用從0計(jì)數(shù)的序號(hào)來(lái)解決這些會(huì)帶來(lái)混淆的問題。例如: class="com.lizjason.spring.BillingService"> 像下面這樣,利用類型屬性來(lái)編寫會(huì)更好一些: class="com.lizjason.spring.BillingService"> value="lizjason"/>   使用索引可以稍稍減少一些冗長(zhǎng),但是和使用類型屬性相比,它還是有容易發(fā)生錯(cuò)誤的傾向和難于閱讀的缺點(diǎn)。你應(yīng)該只在構(gòu)造器參數(shù)不明確的時(shí)候,才使用索引這一方法。

    ??????? 5.盡可能重用已定義過(guò)的bean   

    ??????? Spring提供一種類似繼承一樣的機(jī)制來(lái)減少配置信息的復(fù)制并簡(jiǎn)化XML配置。定義一個(gè)子類可以從它父類那里繼承配置信息,而父類實(shí)質(zhì)上作為子類的一個(gè)模板。這就是大工程中所謂的重用。你所需要做的就是在父類bean中設(shè)置abstract=true,然后在子bean注明它自己的父類bean。

    ??????? 例如: class="com.lizjason.spring.AbstractService"> parent="abstractService" class="com.lizjason.spring.ShippingService"> ShippingService類從abstractService類那里繼承companyName屬性的值??lizjason。如果你沒有為一個(gè)bean指明類或factory方法,那么這個(gè)bean便是抽象的。

    ??????? 6.盡量使用ApplicationContext來(lái)裝配定義的bean   

    ??????? 像在Ant腳本中的引用一樣,Spring的引用對(duì)于裝配模塊化的bean來(lái)說(shuō)是很有用的。
    ??????? 例如: class="com.lizjason.spring.OrderService"/>   相對(duì)于使用import在XML配置中來(lái)預(yù)裝配,通過(guò)ApplicationContext來(lái)配置這些beans,顯得更加靈活。利用ApplicationContext也使得XML配置易于管理。你可以像下面的例子那樣在ApplictionContext構(gòu)造器里布置bean:

    String[]serviceResources=?{"orderServices.xml",?"billingServices.xml",?"shippingServices.xml"};?ApplicationContextorderServiceContext=new?ClassPathXmlApplicationContext(serviceResources);
    主站蜘蛛池模板: 亚洲精品无码久久久久去q| 免费无码一区二区三区蜜桃大| 亚洲AV日韩精品一区二区三区| 亚洲成a人无码亚洲成www牛牛| 91嫩草国产在线观看免费| 亚洲日韩乱码久久久久久| 亚洲色自偷自拍另类小说| 一级毛片免费播放视频| 亚洲成?Ⅴ人在线观看无码| 日本黄页网址在线看免费不卡| 亚洲一区二区三区无码影院| WWW免费视频在线观看播放| 亚洲人成无码网站| 免费国产黄网站在线观看视频| 亚洲一级二级三级不卡| 波多野结衣在线免费视频| 亚洲日韩精品A∨片无码加勒比| 永久免费无码网站在线观看| 国产亚洲高清在线精品不卡| 亚洲人成网站观看在线播放| 男人进去女人爽免费视频国产| 亚洲国产成人综合| 国产美女精品视频免费观看| 一级一级毛片免费播放| 色噜噜综合亚洲av中文无码| 日韩av无码成人无码免费| 污网站在线观看免费| 九月丁香婷婷亚洲综合色| 理论秋霞在线看免费| 中文国产成人精品久久亚洲精品AⅤ无码精品| 国产免费内射又粗又爽密桃视频 | 春暖花开亚洲性无区一区二区| 亚洲成?Ⅴ人在线观看无码| 久久99免费视频| 亚洲www在线观看| 日韩精品电影一区亚洲| 8x成人永久免费视频| 阿v视频免费在线观看| 亚洲2022国产成人精品无码区| 妞干网在线免费观看| 色www永久免费|