springmvc实战技巧解析(三)入门必备,事务的极简配置

举报
小鲍侃java 发表于 2021/09/10 01:33:53 2021/09/10
【摘要】 事务的配置 事务有两种方式,下面介绍编程式事务。(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头中加入命名空间 。


  
  1. xmlns:tx="http://www.springframework.org/schema/tx
  2. http://www.springframework.org/schema/tx
  3. http://www.springframework.org/schema/tx/spring-tx.xsd

然后继续加入


  
  1. <tx:advice id="txAdvice" transaction-manager="transactionManager">
  2. <tx:attributes>
  3. <tx:method name="insertInto" propagation="REQUIRED"
  4. read-only="false" rollback-for="java.lang.Exception" />
  5. </tx:attributes>
  6. </tx:advice>
  7. <!-- 从spring获取事务管理器 -->
  8. <bean id="transactionManager"
  9. class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  10. <property name="dataSource" ref="dataSource" />
  11. </bean>

REQUIRED解释
如果在同一个service类中定义的两个方法, 内层REQUIRES_NEW并不会开启新的事务,save和update中回滚都会导致整个事务的回滚 。
如果在不同的service中定义的两个方法, 内层REQUIRES_NEW会开启新的事务,并且二者独立,事务回滚互不影响 。

rollback-for解释
Spring框架的事务基础架构代码将默认地 只 在抛出运行时和unchecked exceptions时才标识事务回滚。 也就是说,当抛出个 RuntimeException 或其子类例的实例时。(Errors 也一样 - 默认地 - 标识事务回滚。)从事务方法中抛出的Checked exceptions将 不 被标识进行事务回滚。

然后在spring-mvc.xml中添加命名空间,在之后加入Aop配置。


  
  1. <!-- 开启Aop-->
  2. <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
  3. <!-- 配置切入方法-->
  4. <aop:config proxy-target-class="true">
  5. <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.service.*.*(..))" />
  6. </aop:config>

文章来源: baocl.blog.csdn.net,作者:小黄鸡1992,版权归原作者所有,如需转载,请联系作者。

原文链接:baocl.blog.csdn.net/article/details/113339139

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。