乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      spring 事務(wù)管理(Transaction) 例子

       WindySky 2009-04-16
         
          傳統(tǒng)上, J2EE開發(fā)者有兩種事務(wù)管理選擇,全局和本地事務(wù)。Spring框架對(duì)事務(wù)管理的支持極大地改變傳統(tǒng)上認(rèn)為J2EE應(yīng)用需要應(yīng)用服務(wù)器。這種改變不單是僅僅為了通過EJB來使用生命式事務(wù)而使用應(yīng)用服務(wù)器。事實(shí)上,即使你的應(yīng)用服務(wù)器有強(qiáng)大的JTA功能,Spring框架的聲明式事務(wù)提供了比EJB CMT(聲明式事務(wù))更強(qiáng)大,更高效的編程模型。一般來說,只有支持多個(gè)事務(wù)資源,才會(huì)需要應(yīng)用服務(wù)器的JTA功能,而大多數(shù)應(yīng)用不需要能夠處理跨多種資源。最重要的一點(diǎn),使用Spring,你可以選擇何時(shí)把你的應(yīng)用遷移到全功能的應(yīng)用服務(wù)器。使用Spring不需要像以前一樣用編碼實(shí)現(xiàn)本地事務(wù)代替EJB CMT或JTA,現(xiàn)在只需要改配置問價(jià),而不必改代碼。

      一. Spring事務(wù)管理

        1. Spring 編程式事務(wù)管理(programmatic transaction management)
           
         DefaultTransactionDefinition def = new DefaultTransactionDefinition(); 



      TransactionStatus status = transactionManager.getTransaction(def);



      try {



      JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);



      jdbcTemplate.update("INSERT INTO USER VALUES('Spring008', 'caterpillar', 'M', 29)");



      jdbcTemplate.update("INSERT INTO USER VALUES('Spring009', 'momor', 'F', 26)");



      jdbcTemplate.update("INSERT INTO USER VALUES('Spring010, 'beckyday', 'F', 35)");







      } catch (DataAccessException ex) {



      transactionManager.rollback(status); // 也可以執(zhí)行status.setRollbackOnly();



      throw ex;



      }



      transactionManager.commit(status);







      見:http://www./confluence/pages/viewpage.action?pageId=2398




        2. Spring宣告式事務(wù)管理(declarative transaction management)主要是在spring的配置文件中設(shè)置

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



      <property name="transactionManager">



      <ref bean="transactionManager"/>



      </property>



      <property name="target">



      <ref bean="userDAO"/>



      </property>



      <property name="transactionAttributes">



      <props>



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



      </props>



      </property>



      </bean>



      見:http://www./confluence/pages/viewpage.action?pageId=2402







      二. Spring的@Transcation的例子







      1. class 中







      @Component //注釋就可以將該類定義了 Spring 容器中的 Bean







      public Class UserDaoImpl implements IUserDao {







      @Override



      //標(biāo)志updateUsers()為Transactional



      @Transactional(



      propagation = Propagation.REQUIRED,



      isolation = Isolation.DEFAULT,



      rollbackFor = Exception.class



      )



      public void updateUsers(List<User> users){



      for(User user :users){



      //邏輯



      }







      }



      }







      注意: 事務(wù)的屬性和基本概念



      Required : 如果在一個(gè)事務(wù)中調(diào)用,就將該方法加到此事務(wù)中,如果沒有啟動(dòng)事務(wù),就創(chuàng)建新事務(wù)



      RequiredNew : 不管當(dāng)前有沒有事務(wù),都啟動(dòng)新事務(wù),如果有,會(huì)被掛起,直到此方法結(jié)束



      NotSupported : 不能在事務(wù)中執(zhí)行此方法,如果有事務(wù),會(huì)被掛起,直到此方法結(jié)束



      Supports : 如果有當(dāng)前事務(wù),此方法回加到當(dāng)前事務(wù),如果沒有,容器不會(huì)啟動(dòng)新事務(wù)



      Mandatory : 必須在事務(wù)中執(zhí)行此方法,否則會(huì)拋出異常 : TransactionRequiredException



      Never : 必須不在事務(wù)中調(diào)用此方法,否則拋出RemoteException(遠(yuǎn)程調(diào)用)或EJBException(本地調(diào)用)
              2.spring配置文件加入:
                 .....................
                  <tx:annotation-driven/>
                .....................

            注意: webSerivces 是不支持事務(wù)的,如果使用事務(wù),必須在下層的Object中實(shí)現(xiàn),例如在Service層或者是Dao層實(shí)現(xiàn)。
      另外: 
      http://www.ibm.com/developerworks/cn/java/j-ts1.html
      http://www./confluence/display/opensrc/Spring
      http://www./spring_ref/2.0/html/transaction.html#transaction-declarative

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多