欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
簡(jiǎn)化Spring(1)--配置文件
 人人都愛(ài)Spring加Hibernate。
    但Spring MVC+hibernate的Sample如Appfuse的代碼卻算不得最簡(jiǎn)潔優(yōu)美好讀,如果在自己的項目中繼續發(fā)揮我們最擅長(cháng)的依樣畫(huà)葫蘆大法,美好愿望未必會(huì )實(shí)現。
     所以,Pramatic精神不滅。這個(gè)系列就是探尋最適合自己的Spring+Hibernate模式。
    
                              I-配置文件簡(jiǎn)化

     我厭倦一切配置文件繁重的框架。
     最好的情況是,框架提供極端靈活復雜的配置方式,但只在你需要的時(shí)候。
 
     Spring提供了三種可能來(lái)簡(jiǎn)化XML。隨著(zhù)國內用戶(hù)水平的提高,這些基本的簡(jiǎn)化技巧大家都已掌握。
     大家可以直接看第3,第4點(diǎn)--Spring 1.2, Spring 2.0的后繼改進(jìn)。

1.1.autowire="byName" /"byType"

     假設Controller有一個(gè)屬性名為customerDAO,Spring就會(huì )在配置文件里查找有沒(méi)有名字為CustomerDAO的bean, 自動(dòng)為Controller注入。
     如果bean有兩個(gè)屬性,一個(gè)想默認注入,一個(gè)想自定義,只要設定了autowire,然后顯式的聲明那個(gè)想自定義的,就可以達到要求。這就應了需求,在需要特別配置的時(shí)候就提供配置,否則給我一個(gè)默認注入。

     還有一個(gè)更懶的地方,在最最根部的<beans>節點(diǎn)寫(xiě)一句default-autovwrie="byName",可以讓文件里的所有bean 都默認autowrie。
    不過(guò)Rod認為開(kāi)發(fā)期可以這樣,但Production Server上不應該使用Autowire。而我覺(jué)得那些自定義一次的地方比如TranscationManager應該詳細定義,而Dao,Controller這種大量重復定義的bean就可以偷點(diǎn)懶了。

1.2.<bean>節點(diǎn)之間抽象公共定義和 Inner Bean

    這太方便懶人了,想不到兩個(gè)獨立的XML節點(diǎn)都可以玩繼承和派生,子節點(diǎn)擁有父節點(diǎn)的全部屬性。
    最好用的地方就是那個(gè)Transtion Proxy的定義。先定義一個(gè)又長(cháng)又冗的父類(lèi),然后用子類(lèi)去繼承它。
   
    另外,還有一個(gè)Inner Bean的機制,可以把DAO寫(xiě)成Proxy的內部類(lèi)。為什么要寫(xiě)成內部類(lèi)?為了讓Proxy冒名頂替它去讓Controller Autowire。(詳見(jiàn)后面的示例)

1.3. 寬松的配置, To XML or Not to XML 
    據說(shuō)Spring比Struts的配置寬松了很多,這就給人把東西從配置文件中撤回原碼中的機會(huì )。
    不贊成什么都往配置文件里曬,造成了Rich Information的配置文件,修改或者查看的時(shí)候,要同時(shí)打開(kāi)配置文件和原碼才能清楚一切。
    而我希望配置文件就集中做一些整體的配置,還有框架必須的、無(wú)需管理的冗余代碼。而一些細節的變化不大的配置和邏輯,就盡量別往里塞了。因此,Success/Fail View 的配置,不建議放在里面。

2.簡(jiǎn)化后的配置文件

1.Controller只剩下一句

<bean name="customerController" class="org.springside.bookstore.web.CustomerController" autowire="byName"/>

2.DAO也只剩一句

<bean id="customerDAO" class="org.springside.bookstore.dao.CustomerDao"/>

3.Service類(lèi)只剩下5行

  <bean id="customerManager" parent="baseTxService">
        
<property name="target">
            
<bean class="org.springside.bookstore.service.CustomerManager"/>
        
</property>
    
</bean>

3.Spring 1.2后xml語(yǔ)法簡(jiǎn)化

 
最主要的簡(jiǎn)化是把屬性值和引用bean從子節點(diǎn)變回了屬性值,對不喜歡autowire的兄弟比較有用。
 當然,如果value要CDATA的時(shí)候還是要用子節點(diǎn)。另外,list的值可以用空格隔開(kāi)也比較實(shí)用。

1.屬性值

  <property name="foo">
     
<value>fooValue</value>
  </property>
  簡(jiǎn)化為
  <property name="foo" value="fooValue"/>

2.引用 bean
<property name="foo">
   
<ref bean="fooBean">
</property>
簡(jiǎn)化為
<property name="foo" ref="fooBean"/>


3. list可以簡(jiǎn)化為空格分開(kāi)的字符串
 
<property name="myFriendList">
  
<list>
     
<value>gigix</value>
        <value>wuyu</value>
  
</list>
</property>
簡(jiǎn)化為
<property name="myFriendList" value="gigix wuyu"/>
   
  
4.Spring 2.0來(lái)了
   如果沒(méi)什么外力刺激,spring xml 可能就這樣不會(huì )變了。但現在xml成了過(guò)街老鼠,被ror的默認配置和JDK5的annotation逼得不行,當然就要繼續求變。
   比如有好事者認為,節點(diǎn)名必須以bean打頭,附加一個(gè)屬性id來(lái)表示bean名;屬性值必須搞一個(gè)property子節點(diǎn),子節點(diǎn)上有個(gè)屬性name來(lái)表示屬性名,是給機器看的很不直觀(guān)的東西。
<bean id="customerDAO" class="org.springside...CustomerDAO">
 
<property name="maxCount" value="10">
</bean>

給人看的東西應該就寫(xiě)成
<customerDAO class="org.springside....CustomerDAO" maxCount="10"/>

Spring 2.0正用schema實(shí)現類(lèi)似的語(yǔ)法,具體請看它的JPetStore sample。

5.使用Spring自帶的DTD使編輯器Smart.

    如果沒(méi)有用Eclipse的Spring插件,那至少也要使用spring自帶的dtd使XML編輯器smart一些,能夠自動(dòng)為你生成屬性,判斷節點(diǎn)/屬性名稱(chēng)有沒(méi)有拼錯等。

6.還有更變態(tài)的簡(jiǎn)化配置方法
    比如autoproxy,不過(guò)我覺(jué)得更簡(jiǎn)化就不可控了,所以沒(méi)有采用。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Java開(kāi)發(fā)技術(shù)之 SSM框架的學(xué)習分享
第3章 Spring Bean的裝配模式
struts2+spring的兩種整合方式
spring和struts1整合
Bean自動(dòng)裝配的5種模式(autowire)
1#spring_ioc
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久