Spring
程序员文章站
2022-05-21 09:37:33
...
Spring配置事务主要有这2种方式。
1、配置一个Spring提供的一个工厂类,然后将需要进行事务管理的bean放入工厂bean中进行委托代理。
- <bean id="companyDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
- <property name="transactionManager">
- <ref bean="transactionManager" />
- </property>
- <property name="target">
- <ref local="companyDAOTarget" />
- </property>
- <property name="transactionAttributes">
- <props>
- <prop key="insert*">PROPAGATION_REQUIRED</prop>
- <prop key="delete*">PROPAGATION_REQUIRED</prop>
- <prop key="find*">
- PROPAGATION_REQUIRED,readOnly
- </prop>
- </props>
- </property>
- </bean>
- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource">
- <ref local="dataSource" />
- </property>
- </bean>
2、采用AOP方式进行事务配置,注意在配置文件中要注明AOP schema的地址。
- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource">
- <ref local="dataSource" />
- </property>
- </bean>
- <aop:config>
- <aop:pointcut id="serviceMethods" expression="execution(* com.business.impl..*Service*.*(..))" />
- <aop:advisor pointcut-ref="serviceMethods" advice-ref="txAdvice" />
- </aop:config>
- <tx:advice id="txAdvice" transaction-manager="transactionManager">
- <tx:attributes>
- <tx:method name="get*" propagation="SUPPORTS" read-only="true" />
- <tx:method name="load*" propagation="SUPPORTS" read-only="true" />
- </tx:attributes>
- </tx:advice>
推荐阅读
-
spring源码编译
-
spring源码编译
-
struts2+Spring3+hibernate3零配置并且正式环境和开发环境不需要多大改动 Struts
-
Spring MVC传递接收参数方式小结
-
Spring Data JPA实践与学习
-
说说在 Spring Boot 中如何配置数据源
-
spring boot Invalid bound statement (not found)
-
Spring获取Web应用根目录的方法 WebSpringlog4jIBMServlet
-
一篇超详细的Spring Boot整合Mybatis文章
-
Easy Integration Testing with Spring+Hibernate