欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

【Log历练手册】Spring事务管理不能提交异常

发布时间:2025/3/17 javascript 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Log历练手册】Spring事务管理不能提交异常 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Bug记录

使用@Transactional之后,事务不能提交,费了一番功夫发现是@Transactional(value=”“)这条信息配错,事务管理器没有正常启用

xml配置文件

配置文件如下

<bean id="transactionManager4Demo"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource4Demo" /> </bean><tx:annotation-driven transaction-manager="transactionManager4Demo" />

配置文件如下说明如下

<tx:annotation-driven>一共有四个属性如下,mode:指定Spring事务管理框架创建通知bean的方式。可用的值有proxy和aspectj。前者是默认值,表示通知对象是个JDK代理;后者表示Spring AOP会使用AspectJ创建代理 order:如果业务类除事务切面外,还需要织入其他的切面,通过该属性可以控制事务切面在目标连接点的织入顺序。 transaction-manager:指定到现有的PlatformTransaction Manager bean的引用,通知会使用该引用<tx:annotation-driven/>默认使用transactionManager的事务管理器,若bean id命名为transactionManager则不需要设置transaction-manager="transactionManager4Demo"

Spring@Transactional

事务支持属性如下

属性类型描述
valueString可选的限定描述符,指定使用的事务管理器
propagationenum: Propagation 可选的事务传播行为设置
isolation enum: Isolation可选的事务隔离级别设置
readOnly boolean读写或只读事务,默认读写
timeout int (in seconds granularity) 事务超时时间设置
rollbackFor implements Throwable 导致事务回滚的异常类数组
rollbackForClassName 类名数组,必须继承自Throwable 导致事务回滚的异常类名字数组
noRollbackFor implements Throwable不会导致事务回滚的异常类数组
noRollbackForClassName 类名数组,必须继承自Throwable不会导致事务回滚的异常类名字数组

传播行为

Propagation.REQUIRED:表示当前方法必须运行在事务中。如果当前事务存在,方法将会在该事务中运行。否则,会启动一个新的事务

Propagation.SUPPORTS: 表示当前方法不需要事务上下文,但是如果存在当前事务的话,那么该方法会在这个事务中运行

Propagation.MANDATORY:表示该方法必须在事务中运行,如果当前事务不存在,则会抛出一个异常

Propagation.REQUIRES_NEW:表示当前方法必须运行在它自己的事务中。一个新的事务将被启动。如果存在当前事务,在该方法执行期间,当前事务会被挂起。如果使用JTATransactionManager的话,则需要访问TransactionManager

Propagation.NOT_SUPPORTED:表示该方法不应该运行在事务中。如果存在当前事务,在该方法运行期间,当前事务将被挂起。如果使用JTATransactionManager的话,则需要访问TransactionManager

Propagation.NEVER:表示当前方法不应该运行在事务上下文中。如果当前正有一个事务在运行,则会抛出异常

Propagation.NESTED:表示如果当前已经存在一个事务,那么该方法将会在嵌套事务中运行。嵌套的事务可以独立于当前事务进行单独地提交或回滚。如果当前事务不存在,那么其行为与Propagation.REQUIRED一样。注意各厂商对这种传播行为的支持是有所差异的。可以参考资源管理器的文档来确认它们是否支持嵌套事务

转载于:https://www.cnblogs.com/cunchen/p/9464125.html

总结

以上是生活随笔为你收集整理的【Log历练手册】Spring事务管理不能提交异常的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。