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

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

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

    隨筆 - 37  文章 - 14  trackbacks - 0
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    相關(guān)鏈接

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    二、聲明式事務(wù)管理
            Spring聲明式管理主要是通過TransactionProxyFactoryBean來包裝要管理的目標(biāo)對(duì)象,代理目標(biāo)對(duì)象要實(shí)現(xiàn)的接口。
    看如下代碼
    首先定義一個(gè)目標(biāo)對(duì)象

        <bean id="spcJlxDataSaveServiceTarget"
            class
    ="com.spc.spring.business.service.SpcJlxDataSaveServiceImp"
            abstract
    ="false" singleton="true" lazy-init="default"
            autowire
    ="default" dependency-check="default">
            
    <property name="spcGzxmServiceImp">
                
    <ref bean="spcGzxmServiceImp" />
            
    </property>
            
    <property name="spcJlxDataService">
                
    <ref bean="spcJlxDataService" />
            
    </property>
        
    </bean>

    同編程式事務(wù)管理,都需要有transactionManager的對(duì)象,這里就不再重復(fù)設(shè)置;下面看如果設(shè)置TransactionProxyFactoryBean來代理目標(biāo)對(duì)象

         <bean id="spcJlxDataSaveServiceImp"
         class
    ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
         
    <property name="proxyInterfaces">
             
    <list>
                 
    <value>com.spc.spring.business.ISpcJlxDataSaveService</value>
             
    </list>
         
    </property>
         
    <property name="target">
             
    <ref bean="spcJlxDataSaveServiceTarget"/>
         
    </property>
         
    <property name="transactionManager">
             
    <ref bean="transactionManager"/>
         
    </property>
         
    <property name="transactionAttributes">
             
    <props>
             
    <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
             
    </props>
         
    </property>
         
    </bean>

    target屬性是目標(biāo)對(duì)象;proxyInterface是目標(biāo)對(duì)象所實(shí)現(xiàn)的接口;transactionAttributes屬性是定義事務(wù)的設(shè)置級(jí)別等。其中"-Exception"表示對(duì)所有的異常都做回滾動(dòng)作。
    TransactionTemplatate
    如果要給對(duì)象添加更多的事務(wù)屬性,那么使用上述配置便會(huì)變得非常臃腫。為了避免該問題你可以使用Transaction Template Beanr為了繼承這個(gè)bean
    的所有bean指定屬性如下,1:先定義一個(gè)tmplate bean

    <bean id="txProxyTemplate" abstract="true"
    class
    ="org.springframework.transaction.interceptor.
    TransactionProxyFactoryBean"
    >
    <property name="transactionManager">
    <ref bean="transactionManager"/>
    </property>
    <property name="transactionAttributes">
    <props>
    <prop key="save*">PROPAGATION_REQUIRED</prop>
    <prop key="remove*">PROPAGATION_REQUIRED</prop>
    <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
    </props>
    </property>
    </bean>
    2:創(chuàng)建一個(gè)應(yīng)用此模板的bean時(shí),使用parent屬性來引用此模板的id。然后在target屬性中將這個(gè)類定義為一個(gè)內(nèi)部bean
    <bean id="userManager" parent="txProxyTemplate">
    <property name="target">
    <bean class="org.appfuse.service.impl.UserManagerImpl">
    <property name="userDAO"><ref bean="userDAO"/></property>
    </bean>
    </property>
    </bean>
    TransactionAttributeSource
    另一種配置聲明式事務(wù)的是指定一個(gè)引用了NameMatchTransactionAttributeSource類并定義了方法和它們行為的bean。這種策略不及template bean簡(jiǎn)潔,因?yàn)樗笥肨ransactionProxyFactoryBean來包裝所有的bean。
    1:創(chuàng)建一個(gè)bean來描述事務(wù)屬性
    <bean name="txAttributes"
    class
    ="org.springframework.transaction.interceptor.
    NameMatchTransactionAttributeSource"
    >
    <property name="properties">
    <props>
    <prop key="save*">PROPAGATION_REQUIRED</prop>
    <prop key="remove*">PROPAGATION_REQUIRED</prop>
    <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
    </props>
    </property>
    </bean>

    2:創(chuàng)建一個(gè)包裝事務(wù)的bean定義,在transactionAttributeSource屬性中引用這個(gè)bean

    <bean id="userManager"
    class
    ="org.springframework.transaction.interceptor.
    TransactionProxyFactoryBean"
    >
    <property name="transactionManager">
    <ref bean="transactionManager"/>
    </property>
    <property name="target">
    <bean class="org.appfuse.service.impl.UserManagerImpl">
    <property name="userDAO">
    <ref bean="userDAO"/>
    </property>
    </bean>
    </property>
    <property name="transactionAttributeSource">
    <ref bean="txAttributes"/>
    </property>
    </bean>
    posted on 2007-08-09 14:46 扭曲的鉛筆 閱讀(252) 評(píng)論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 色se01短视频永久免费| 亚洲熟妇av一区| 麻豆成人精品国产免费| 日韩精品人妻系列无码专区免费| 亚洲国产精品毛片av不卡在线 | 亚洲伊人色一综合网| 成人浮力影院免费看| 18禁在线无遮挡免费观看网站| 亚洲黄色中文字幕| 亚洲国产成人高清在线观看| 免费A级毛片无码A| 国产高清在线精品免费软件| 在线观看免费人成视频色| 中文免费观看视频网站| 久久久久国产精品免费免费不卡| 亚洲一区二区三区四区视频| 亚洲av片一区二区三区| 又粗又大又硬又爽的免费视频| 花蝴蝶免费视频在线观看高清版| 亚洲xxxx视频| 亚洲av无码片在线观看| 亚洲一级黄色大片| 亚洲 小说区 图片区 都市| 国产免费网站看v片在线| 中文字幕在线免费视频| 一级一级一级毛片免费毛片| 又硬又粗又长又爽免费看 | 亚洲影院天堂中文av色| 亚洲午夜国产精品| 亚洲国产日韩在线成人蜜芽 | 亚洲综合小说久久另类区| 四虎永久精品免费观看| 国产美女无遮挡免费视频网站| 久久99国产乱子伦精品免费| 色天使色婷婷在线影院亚洲| 色偷偷噜噜噜亚洲男人| 思思re热免费精品视频66| 97免费人妻无码视频| 免费无码黄十八禁网站在线观看| 伊人免费在线观看高清版| 免费人成黄页在线观看日本|