posts - 325,  comments - 25,  trackbacks - 0
          一.
          使用TransactionProxyFactoryBean創(chuàng)建事務代理(通常事務代理以Service層為目標bean)
          <bean id="personService" class="com.lin.personServiceImpl">
              <property name="personDao" ref="personDao"/>
          </bean>
          //配置hibernate的事務管理器,使用HibernateTransactionManager類,該類實現(xiàn)了PlatformTransactionManager接口,針對hibernate 持久化連接的特定實現(xiàn)
          <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
              <property name="sessionFactory" ref="sessionFactory"/>
          </bean>
          //配置personService bean的事務代理
          <bean id="personServiceProxy"
                  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
                      //指定事務管理器
              <property name="transactionManager" ref="transactionManager"/>
                      //指定需要生成代理的日標bean
              <property name="persionService" ref="persionService"/>
                      //指定事務屬性
              <property name="transactionAttributes"
                  <props>
                      <prop key="insert*">PROPAGATION_REQUIRED,-MyCheckedException</prop>
                      <prop key="update*>PROPAGATION_REQUIRED</prop>
                      <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
                  </props>
              </property>


          二.使用自動創(chuàng)建代理簡化事務配置
             使用BeanNameAutoProxyCreator 和DefaultAdvisorAutoProxyCreator創(chuàng)建代理時,并不一定是創(chuàng)建事務代理,關鍵在于傳入的攔截器,如果傳入事務攔截器,將可自動生成事務代理.
          //使用jdbc局部事務策略
          <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
              <property name="dataSource" ref="dataSource"/>
          </bean>
          //配置目標bean1,該目標bean將由Bean后處理器自動生成代理
          <bean id="testbean1" class="com.lin.Testbean1Impl">
              <property name="dataSource" ref="dataSource"/>
          </bean
          //配置目標bean2,該目標bean將由Bean后處理器自動生成代理
          <bean id="testbean2" class="com.lin.Testbean2Impl">
              <property name="dataSource" ref="dataSource"/>
          </bean
          //配置事務攔截器bean
          <bean id="transactionInterceptor"
             class="org.springframework.transaction.interceptor.TransactionInterceptor">
                  //事務攔截器需要注入一個事務管理器
                <property name="transactionManager" ref="transactionManager"/>
                 <property name="transactionAttributes">
                      //定義事務傳播屬性
                      <props>
                              <prop key="insert*">PROPAGATION_REQUIRED</prop>
                              <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                              <prop key="*">PROPAGATION_REQUIRED</prop>
                      </props>
                  </property>
              //定義BeanNameAutoProxyCreator的Bean后處理器
           <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
              <property name="beanNames">
                  <list>
                      <value>testbean1</value>
                      <value>testbean2</value>
                  </list>
                      //此處可以增加其他需要創(chuàng)建事務代理的bean
              </property>
                  //定義BeanNameAutoProxyCreator所需要的攔截器
               <property name="interceptorNames">
                  <list>
                      <value>transactionInterceptor</value>
                          //此處可以增加其他新的Interceptor
                  </list>
              </property>
           </bean>
              
          posted on 2008-05-18 15:39 長春語林科技 閱讀(772) 評論(0)  編輯  收藏 所屬分類: spring
          <2008年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

           

          長春語林科技歡迎您!

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 元氏县| 吴江市| 元谋县| 井陉县| 邓州市| 赤壁市| 威信县| 饶阳县| 大连市| 新巴尔虎右旗| 竹溪县| 顺昌县| 张家界市| 安徽省| 定兴县| 永靖县| 怀化市| 融水| 榕江县| 尤溪县| 河西区| 肥城市| 永嘉县| 白水县| 曲松县| 奉化市| 城口县| 岚皋县| 长乐市| 潼南县| 日土县| 南投市| 洮南市| 永春县| 长乐市| 光泽县| 辽源市| 平遥县| 彰化市| 盈江县| 龙州县|