計算機程序虛擬的人生
          虛擬世界中的游魂
            Spring的容器事務主要是基于動態AOP來處理。
           下面這段xml配置片斷展示了Spring中的事務設定方式:
          <beans>
               <bean id="dataSource"
                          class="org.apache.commons.dbcp.BasicDataSource"
                          destroy-method="close">
                        <property name="driverClassName">
                                 <value>org.gjt.mm.mysql.Driver</value>
                        </property>
                        <property name="url">
                                  <value>jdbc:mysql://localhost/sample</value>
                       </property>
                       <property name="username">
                                 <value>user</value>
                       </property>
                       <property name="password">
                                  <value>mypass</value>
                        </property>
                 </bean>
                <bean id="transactionManager"
                           class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                           <property name="dataSource">
                                <ref local="dataSource" />
                           </property>
                 </bean>
                  <bean id="userDAO" class="net.xiaxin.dao.UserDAO">
                            <property name="dataSource">
                                  <ref local="dataSource" />
                           </property>
                   </bean>
                  <bean id="userDAOProxy"
                             class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
                           <property name="transactionManager">
                                    <ref bean="transactionManager" />
                           </property>
                           <property name="target">
                                   <ref local="userDAO" />
                           </property>
                            <property name="transactionAttributes">
                                   <props>
                                      <prop key="insert*">PROPAGATION_REQUIRED</prop>
                                      <prop key="get*">
                                         PROPAGATION_REQUIRED,readOnly
                                       </prop>
                                     </props>
                              </property>
                       </bean>
          </beans>

          ------------------------------------------------------------------------------------------------------------------------------------------------------------------
          EJB事務處理與Spring事務處理的區別,關鍵兩點:
          1、Spring可以將任意Java Class 納入事務管理這里的UserDAO只是我們編寫的一個普通Java Class,其中包含了一些基本的數據應用邏輯。通過Spring,我們即可簡單的實現事務的可配置化。也就是說,我們可以隨意為某個類的某個方法指定事務管理機制。與之對比,如果使用EJB容器提供的事務管理功能,我們不得不按照EJB規范編將UserDAO 進行改造,將其轉換為一個標準的EJB。
          2、Spring事務管理并不依賴特定的事務資源。EJB 容器必須依賴于JTA 提供事務支持。而Spring 的事務管理則支持JDBC、JTA 等多種事務資源。這為我們提供了更多的選擇,從而也使得我們的系統部署更加靈活。
          posted on 2009-06-23 20:08 小兄弟(Robbins) 閱讀(160) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 阜新市| 河源市| 绥化市| 微博| 扶余县| 荔波县| 库伦旗| 庆元县| 陇西县| 沭阳县| 濉溪县| 贵港市| 宁陕县| 杂多县| 江阴市| 茂名市| 商城县| 宁明县| 衡山县| 漠河县| 松江区| 左权县| 双江| 龙陵县| 儋州市| 兴城市| 大关县| 海安县| 鄯善县| 淮北市| 宁强县| 鲁山县| 冀州市| 沙坪坝区| 阜平县| 泰安市| 柳江县| 伊宁市| 前郭尔| 平顺县| 五原县|