国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Spring XML配置十二個(gè)最佳實(shí)踐

2019-11-17 06:30:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

  1。不要使用autowiring

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

  2.使用通俗的命名

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

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

  簡(jiǎn)潔形式避免了冗長(zhǎng),是因?yàn)樗鼜淖釉刂袑傩灾岛蛥⒖紝?xiě)到屬性中。例如下面的例子:
    <bean id="orderService"
        class="com.lizjason.spring.OrderService">
        <property name="companyName">
            <value>lizjason</value>
        </property>
        <constrUCtor-arg>
            <ref bean="orderDAO">
        </constructor-arg>
    </bean>


  可以使用簡(jiǎn)潔形式將上述代碼重寫(xiě)為:
    <bean id="orderService"
        class="com.lizjason.spring.OrderService">
        <property name="companyName"
            value="lizjason"/>
        <constructor-arg ref="orderDAO"/>
    </bean>

  簡(jiǎn)潔形式功能在1.2版本中可以使用。對(duì)于<ref local="...">沒(méi)有簡(jiǎn)潔形式。
簡(jiǎn)潔形式不但可以節(jié)約你的打字,而且可以使XML配置文件清楚。它最引人注目的是當(dāng)在一個(gè)配置文件中有大量定義的類(lèi)時(shí)可以提高易讀性。

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

  當(dāng)一個(gè)構(gòu)造器含有一個(gè)以上的同種類(lèi)型的參數(shù),或者屬性值的標(biāo)簽已經(jīng)被占用時(shí),Spring答應(yīng)你使用從0計(jì)數(shù)的序號(hào)來(lái)解決這些會(huì)帶來(lái)混淆的問(wèn)題。例如:
    <bean id="billingService"
        class="com.lizjason.spring.BillingService">
        <constructor-arg index="0" value="lizjason"/>
        <constructor-arg index="1" value="100"/>
    </bean>


  像下面這樣,利用類(lèi)型屬性來(lái)編寫(xiě)會(huì)更好一些:
    <bean id="billingService"
        class="com.lizjason.spring.BillingService">
        <constructor-arg type="java.lang.String"
            value="lizjason"/>
        <constructor-arg type="int" value="100"/>
    </bean>

  使用索引可以稍稍減少一些冗長(zhǎng),但是和使用類(lèi)型屬性相比,它還是有輕易發(fā)生錯(cuò)誤的傾向和難于閱讀的缺點(diǎn)。你應(yīng)該只在構(gòu)造器參數(shù)不明確的時(shí)候,才使用索引這一方法。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉祥县| 霍州市| 灵山县| 赣州市| 陆丰市| 九龙坡区| 万山特区| 新乡市| 弋阳县| 白玉县| 滦平县| 赞皇县| 肃南| 石棉县| 平潭县| 大同县| 新竹市| 黎城县| 岳阳市| 襄汾县| 许昌县| 三亚市| 梁山县| 峡江县| 始兴县| 称多县| 绥中县| 利川市| 壤塘县| 广东省| 贡山| 武山县| 霸州市| 广河县| 北碚区| 永泰县| 永泰县| 云和县| 建昌县| 宝应县| 利辛县|