Java蜘蛛人 歡迎大家

          歡迎大家 來到我的blog , 如果我身邊的朋友 有什么不懂可以直接來問我 我會(huì)細(xì)心的幫助你的. 如果網(wǎng)絡(luò)上的朋友有什么不懂的 可以加我Java蜘蛛人 QQ48187537
          posts - 54, comments - 192, trackbacks - 0, articles - 1
           

              <bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"

                  abstract="true">

                 <property name="transactionManager" ref="transactionManager"/>

                 <property name="transactionAttributes">

                     <props>

                        <prop key="insert*">PROPAGATION_REQUIRED</prop>

                        <prop key="update*">PROPAGATION_REQUIRED</prop>

                        <prop key="delete*">PROPAGATION_REQUIRED</prop>

                        <prop key="change*">PROPAGATION_REQUIRED</prop>

                        <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

                     </props>

                 </property>

              </bean>

          1

          一旦你決定要用 AOP 來做 SERVICE 內(nèi)部每個(gè)方法的事務(wù)處理,那么在 DAO 層內(nèi)部最好不要從自己去 catch 異常,因?yàn)樵?/span> SERVICE 里面可能多次調(diào)用 DAO ,一旦多次調(diào)用,你其中一個(gè)方法捕獲了異常就沒有辦法保證事務(wù)回滾,所以即使你捕獲異常為了調(diào)試,一定要在 CATCH 方法中一定還要拋出一個(gè)異常來,否則無法保證事務(wù)

          2

          一旦決定要用 spring aop 方式來處理事務(wù),一定要不采用 JDOtemplate ,或者 HIBERNATE TEMPALATE 內(nèi)部類的方式,因?yàn)槟菢铀麄冏约喝ス芾硎聞?wù),一旦在內(nèi)部類中事務(wù)回滾,無法保證其他的 DAO 中事務(wù)回滾

          3

          1、 PROPAGATION_REQUIRED -- 支持當(dāng)前的事務(wù),如果不存在就創(chuàng)建一個(gè)新的。這是最常用的選擇。
          2 PROPAGATION_SUPPORTS -- 支持當(dāng)前的事務(wù),如果不存在就不使用事務(wù)。
          3 PROPAGATION_MANDATORY -- 支持當(dāng)前的事務(wù),如果不存在就拋出異常。
          4 、 PROPAGATION_REQUIRES_NEW -- 創(chuàng)建一個(gè)新的事務(wù),并暫停當(dāng)前的事務(wù)(如果存在)。
          5 、 PROPAGATION_NOT_SUPPORTED -- 不使用事務(wù),并暫停當(dāng)前的事務(wù)(如果存在)。
          6 、 PROPAGATION_NEVER -- 不使用事務(wù),如果當(dāng)前存在事務(wù)就拋出異常。
          7 PROPAGATION_NESTED -- 如果當(dāng)前存在事務(wù)就作為嵌入事務(wù)執(zhí)行,否則與 PROPAGATION_REQUIRED 類似。

          4 < prop key="change*">PROPAGATION_REQUIRED</prop>

            你可以在 PROPAGATION_REQUIRE 之后指定拋出什么樣的異常事務(wù)才回滾,或者事務(wù)的隔離方式是什么等等都可以配置如 <prop key="change*">PROPAGATION_REQUIRED,readOnly,-PetClinicException</prop>


          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 德兴市| 玉林市| 利川市| 义马市| 前郭尔| 三台县| 江油市| 焦作市| 临清市| 涡阳县| 蓝山县| 成武县| 峡江县| 舒兰市| 池州市| 花莲县| 平武县| 舒城县| 仁布县| 自治县| 资源县| 太湖县| 陕西省| 辽中县| 田林县| 包头市| 樟树市| 钟山县| 大关县| 威宁| 阿荣旗| 延津县| 含山县| 来安县| 慈溪市| 邹平县| 商河县| 贵溪市| 南昌市| 即墨市| 邢台县|