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

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

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

    ann
    冰是沒(méi)有未來(lái)的,因?yàn)樗挠篮?/span>
    posts - 107,comments - 34,trackbacks - 0
       
        傳統(tǒng)上, J2EE開發(fā)者有兩種事務(wù)管理選擇,全局和本地事務(wù)。Spring框架對(duì)事務(wù)管理的支持極大地改變傳統(tǒng)上認(rèn)為J2EE應(yīng)用需要應(yīng)用服務(wù)器。這種改變不單是僅僅為了通過(guò)EJB來(lái)使用生命式事務(wù)而使用應(yīng)用服務(wù)器。事實(shí)上,即使你的應(yīng)用服務(wù)器有強(qiáng)大的JTA功能,Spring框架的聲明式事務(wù)提供了比EJB CMT(聲明式事務(wù))更強(qiáng)大,更高效的編程模型。一般來(lái)說(shuō),只有支持多個(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)在只需要改配置問(wè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.javaworld.com.tw/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.javaworld.com.tw/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ù)中,如果沒(méi)有啟動(dòng)事務(wù),就創(chuàng)建新事務(wù)
    RequiredNew : 不管當(dāng)前有沒(méi)有事務(wù),都啟動(dòng)新事務(wù),如果有,會(huì)被掛起,直到此方法結(jié)束
    NotSupported : 不能在事務(wù)中執(zhí)行此方法,如果有事務(wù),會(huì)被掛起,直到此方法結(jié)束
    Supports : 如果有當(dāng)前事務(wù),此方法回加到當(dāng)前事務(wù),如果沒(méi)有,容器不會(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.javaworld.com.tw/confluence/display/opensrc/Spring
    http://www.redsaga.com/spring_ref/2.0/html/transaction.html#transaction-declarative

    當(dāng)下,把心放下 放下如果是可能的,那一定是在當(dāng)下,
    不在過(guò)去,也不在未來(lái)。
    當(dāng)下放下。唯有活在當(dāng)下,你的問(wèn)題才能放下。

    主站蜘蛛池模板: 国产精品免费一区二区三区| 日本亚洲高清乱码中文在线观看| 岛国精品一区免费视频在线观看| 亚洲国产精品狼友中文久久久| 无码色偷偷亚洲国内自拍| 国产自产拍精品视频免费看| 精品亚洲福利一区二区| 亚洲福利精品电影在线观看| 国产高清对白在线观看免费91| 国产精品亚洲综合一区| 两性色午夜视频免费网| 久久久久久亚洲AV无码专区| 91免费播放人人爽人人快乐| 中文日韩亚洲欧美制服| 全部免费国产潢色一级| www在线观看播放免费视频日本| 国产亚洲精品无码专区| 久久久久久AV无码免费网站| 亚洲乱码中文论理电影| 日本一区免费电影| 精品无码一级毛片免费视频观看 | 丰满亚洲大尺度无码无码专线| 国产福利免费在线观看| 中文字幕视频免费在线观看| 香蕉蕉亚亚洲aav综合| 男女做羞羞的事视频免费观看无遮挡| 亚洲 欧洲 日韩 综合在线| 亚洲精品高清一二区久久| 国产在线精品免费aaa片| 亚洲综合在线成人一区| 日韩高清在线免费观看| 三级黄色片免费看| 亚洲成a人片在线观| 又粗又硬免费毛片| 99久久久国产精品免费蜜臀| 亚洲爆乳成av人在线视菜奈实| 精品国产亚洲男女在线线电影| 国产成人精品免费视频动漫| 免费精品国产自产拍在线观看| 午夜亚洲AV日韩AV无码大全| 成人免费福利电影|