springmvc实战技巧解析(三)入门必备,事务的极简配置
【摘要】
事务的配置
事务有两种方式,下面介绍编程式事务。(aop与事务的结合,aop需要的pom.xml配置可以去网络获取) 在spring -tx.xml头中加入命名空间 。
xmlns:tx="http://www.springframework.org/schema/tx http://www.springframework.org/...
事务的配置
事务有两种方式,下面介绍编程式事务。(aop与事务的结合,aop需要的pom.xml配置可以去网络获取)
在spring -tx.xml头中加入命名空间 。
-
xmlns:tx="http://www.springframework.org/schema/tx
-
-
http://www.springframework.org/schema/tx
-
http://www.springframework.org/schema/tx/spring-tx.xsd
然后继续加入
-
<tx:advice id="txAdvice" transaction-manager="transactionManager">
-
<tx:attributes>
-
<tx:method name="insertInto" propagation="REQUIRED"
-
read-only="false" rollback-for="java.lang.Exception" />
-
</tx:attributes>
-
</tx:advice>
-
<!-- 从spring获取事务管理器 -->
-
<bean id="transactionManager"
-
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
-
<property name="dataSource" ref="dataSource" />
-
</bean>
REQUIRED解释
如果在同一个service类中定义的两个方法, 内层REQUIRES_NEW并不会开启新的事务,save和update中回滚都会导致整个事务的回滚 。
如果在不同的service中定义的两个方法, 内层REQUIRES_NEW会开启新的事务,并且二者独立,事务回滚互不影响 。
rollback-for解释
Spring框架的事务基础架构代码将默认地 只 在抛出运行时和unchecked exceptions时才标识事务回滚。 也就是说,当抛出个 RuntimeException 或其子类例的实例时。(Errors 也一样 - 默认地 - 标识事务回滚。)从事务方法中抛出的Checked exceptions将 不 被标识进行事务回滚。
然后在spring-mvc.xml中添加命名空间,在之后加入Aop配置。
-
<!-- 开启Aop-->
-
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
-
<!-- 配置切入方法-->
-
<aop:config proxy-target-class="true">
-
<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.service.*.*(..))" />
-
</aop:config>
文章来源: baocl.blog.csdn.net,作者:小黄鸡1992,版权归原作者所有,如需转载,请联系作者。
原文链接:baocl.blog.csdn.net/article/details/113339139
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)