当前位置: 首页 > 科技观察

Spring事务失败的原因有哪些?

时间:2023-03-12 04:57:28 科技观察

有2年工作经验的小伙伴被问到这样一道面试题,请你说说Spring事务失败的原因?今天,我就把我的理解分享给大家。这里给大家总结一下。Spring事务失败主要有八个原因:1、方法没有被public修改。将失败。2.类不被Spring管理如果事务方法所在的类没有加载到SpringIoC容器中,也就是说事务方法所在的类不被Spring管理,这使得Spring无法实现代理,所以Spring事务也会失败。3、不正确的异常捕获如果事务方法抛出的异常被catch处理,会导致@Transactional无法回滚,导致事务失败。4、同一个类中的方法调用如果同一个类中的两个方法是A和B,方法A不加事务注解,方法B加@Transactional事务注解,方法A调用方法B,然后方法B交易将失败。5.propagation事务传播行为配置错误如果内部方法的事务传播类型是不支持事务的传播类型,那么内部方法的事务在Spring中就会失效。6、rollbackFor参数设置错误。如果rollbackFor参数在@Transactional注解中标记了错误的异常类型,则无法识别Spring事务的回滚,导致事务回滚失败。7、没有配置事务管理器。即使代码中使用了Spring事务管理功能,如果项目中没有配置Spring事务管理器,Spring事务也不会生效。8.数据库本身不支持事务。Spring事务生效的前提是连接的数据库必须支持事务。如果底层数据库不支持事务,那么Spring事务肯??定会失败。比如使用的数据库是MySQL,选择了MyISAM存储引擎,那么Spring事务就会失效。以上是我对Spring事务失败原因的理解。