MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          aop配置事務

          Posted on 2009-12-24 22:04 leekiang 閱讀(296) 評論(0)  編輯  收藏 所屬分類: spring
          事務直接配到DAO上
          <bean id="transactionManager"
          ?? ??? ?class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          ?? ??? ?<property name="dataSource" ref="dataSource" />
          ?? ?</bean>

          ?? ?<bean id="baseTxProxy"
          ?? ??? ?class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
          ?? ??? ?lazy-init="true" abstract="true">
          ?? ??? ?<property name="transactionManager">
          ?? ??? ??? ?<ref bean="transactionManager" />
          ?? ??? ?</property>
          ?? ??? ?<property name="transactionAttributes">
          ?? ??? ??? ?<props>
          ?? ??? ??? ??? ?<prop key="update*">PROPAGATION_REQUIRED</prop>
          ?? ??? ??? ?</props>
          ?? ??? ?</property>
          ?? ?</bean>

          ?? ?<bean id="studentDaoProxy" parent="baseTxProxy">
          ?? ??? ?<property name="target">
          ?? ??? ??? ?<ref bean="studentDao" />
          ?? ??? ?</property>
          ?? ?</bean>

          ?? ?<bean id="studentDao" class="com.dao.StudentDaoImpl">
          ?? ??? ?<property name="dataSource" ref="dataSource" />
          ?? ?</bean>
          ?? ?
          ?? ?StudentDao st = (StudentDao) context.getBean("studentDaoProxy");
          ?? ?
          ?? ?兩個bean也可以合并為
          ?? ?<bean id="studentDao" parent="baseTxProxy">
          ?? ??? ?<property name="target">
          ?? ??? ??? ?<bean class="com.dao.StudentDaoImpl">
          ?? ??? ??? ??? ?<property name="dataSource" ref="dataSource" />
          ?? ??? ??? ??? ?<property name="kpiDao" ref="kpiDao" />
          ?? ??? ??? ?</bean>
          ?? ??? ?</property>
          ?? ?</bean>
          ?? ?StudentDao st = (StudentDao) context.getBean("studentDao");
          ?? ?上述這種方式必須使用接口,為什么。
          ?? ?
          ?? ?
          ?? ?第二種同樣必須用接口。配置起來比第一種麻煩
          ?? ??? ?<bean id="transactionManager"
          ?? ??? ?class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          ?? ??? ?<property name="dataSource" ref="dataSource" />
          ?? ?</bean>

          ?? ?<bean id="transactionInterceptor"
          ?? ??? ?class="org.springframework.transaction.interceptor.TransactionInterceptor">
          ?? ??? ?<property name="transactionManager" ref="transactionManager" />
          ?? ??? ?<property name="transactionAttributes">
          ?? ??? ??? ?<props>
          ?? ??? ??? ??? ?<prop key="update*">PROPAGATION_REQUIRED</prop>
          ?? ??? ??? ?</props>
          ?? ??? ?</property>
          ?? ?</bean>
          ?? ?<bean id="studentDaoProxy"
          ?? ??? ?class="org.springframework.aop.framework.ProxyFactoryBean">
          ?? ??? ?<property name="target" ref="studentDao" />
          ?? ??? ?<property name="interceptorNames">
          ?? ??? ??? ?<list>
          ?? ??? ??? ??? ?<value>transactionInterceptor</value>
          ?? ??? ??? ?</list>
          ?? ??? ?</property>
          ?? ?</bean>
          ?? ?
          ?? ?<bean id="studentDao" class="com.dao.StudentDaoImpl">
          ?? ??? ?<property name="dataSource" ref="dataSource" />
          ?? ?</bean>
          ?? ?ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
          ?? ?StudentDao st = (StudentDao) context.getBean("studentDaoProxy");
          ?? ?
          ?? ?如果使用的都是接口,那么就不需要用cglib-nodep-2.1_3.jar
          ?? ?如果service調dao沒有用到接口,那么必須用cglib-nodep-2.1_3.jar


          事務策略: 了解事務陷阱 http://www.ibm.com/developerworks/cn/java/j-ts1.html 事務策略: 高并發策略 http://www.ibm.com/developerworks/cn/java/j-ts5/index.html 這是一個系列.

          http://beet.sourceforge.net
          Beet records user behavior and performance data for your Spring-based Java application.? It can thus help you to analyze usage patterns and research production performance issues.
          主站蜘蛛池模板: 安图县| 册亨县| 望谟县| 麻城市| 连平县| 泰州市| 隆化县| 剑川县| 洪江市| 建水县| 岳西县| 临洮县| 高州市| 疏勒县| 九江县| 德昌县| 重庆市| 河西区| 龙江县| 怀化市| 安国市| 灌南县| 文成县| 潍坊市| 新泰市| 宁明县| 开江县| 绥阳县| 阆中市| 长葛市| 舒兰市| 奈曼旗| 台北市| 措勤县| 滨州市| 河间市| 柳江县| 屯留县| 兴文县| 稷山县| 郁南县|