【spring补充】spring-ibais事务配置
时间:2014-06-07 01:08:27
收藏:0
阅读:253
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
代理实现<br> <bean id="userServiceProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref
bean="transactionManager"
/> </property> <property name="target"> <ref
local="userService"
/> </property> <property name="transactionAttributes"> <props> <!-- 这里的方法签名可以精确到方法, 先懒惰一下全配置上 --> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> |
拦截器实现
|
1
2
3
4
5
6
7
8
9
10 |
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager"
ref="transactionManager"
/> <property name="transactionAttributes"> <props> <!-- 这里的方法签名可以精确到方法, 先懒惰一下全配置上 --> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> |
AOP和TX配置
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
<!-- 需要引入aop的命名空间 --> <aop:config> <!-- 切入点指明了在所有方法产生事务拦截操作 --> <aop:pointcut id="serviceMethods" expression="execution(* com.angi.ibatis.service.*.*(..))"
/> <!-- 定义了将采用何种拦截操作,这里引用到 txAdvice --> <aop:advisor advice-ref="txAdvice"
pointcut-ref="serviceMethods"
/> </aop:config> <!-- 需要引入tx的命名空间 --> <!-- 这是事务通知操作,使用的事务管理器引用自 transactionManager --> <tx:advice id="txAdvice"
transaction-manager="transactionManager"> <tx:attributes> <!-- 指定哪些方法需要加入事务,这里懒惰一下全部加入,可以使用通配符来只加入需要的方法 --> <tx:method name="*"
propagation="REQUIRED"
/> </tx:attributes> </tx:advice> |
anotation
|
1
2
3
4
5
6
7
8
9
10
11
12
13 |
<!-- 需要引入tx的命名空间 --> <tx:annotation-driven transaction-manager="transactionManager"
/>@Transactional public
void doTransaction() { User user = new
User(); user.setName("11111"); user.setSex(1); userDao.saveUser(user); User user1 = new
User(); user1.setName("Angikkk"); user1.setSex(1); userDao.saveUser(user1); |
链接:http://www.cnblogs.com/Angi/articles/2007563.html
评论(0)