导致Spring事务失效的原因有哪些?

网站建设3年前发布
24 0 0

20230306012540a3157d1271b8a5b9d80621b5118f1b84c225ee745,​一位2年工作经验的小伙伴被问到这样一道面试题,说请你谈谈导致Spring事务失效的原因有哪些?,今天,我给大家分享一下我的理解。,下面给大家总结一下,导致Spring事务失效的原因主要有以下8个:,20230306012541c1078d572eed1123f13456a2456646ae367795712,在开发过程中,如果@Transactional事务注解添加在不是public修饰的方法上,这个时候,Spring的事务就会失效。,20230306012541f350b6e99fcd0e0c94b697c561fe5a58363d52102,如果事务方法所在的类没有加载到Spring IoC容器中,也就是说,事务方法所在的类没有被Spring管理,从而导致Spring无法实现代理,所以,Spring事务也会失效。,20230306012542b79a948112d90439d0e09550f8b799c823d942608,如果事务方法抛出异常被 catch 处理了,导致 @Transactional 无法回滚而导致事务失效。,2023030601254288ceb9f9126366dc28585640c0cbb51b86ed76337,如果同一个类中的两个方法分别为A和B,方法A上没有添加事务注解,方法B上添加了 @Transactional事务注解,方法A调用方法B,那么,方法B的事务会失效。,20230306012554a54eda1416ac359f52b434c62ae1d488632612987,如果内部方法的事务传播类型为不支持事务的传播类型,那么,内部方法的事务在Spring中会失效。,20230306012544a682e5425f627db144e2195e61d996b25f9270797,如果在@Transactional注解中rollbackFor参数标注了错误的异常类型,那么,Spring事务的回滚就无法识别,导致事务回滚失效。,20230306012544150b4651766ad00fae5888a161ede7aa3d3b6d393,即使在代码中使用了Spring的事务管理的功能,但是在项目中,如果没有配置Spring的事务管理器,Spring的事务也不会生效。,20230306012544687060067d503a9d64f210dd5d45cd02dd2aa1414,Spring事务生效的前提是所连接的数据库要支持事务,如果底层的数据库都不支持事务,那么,Spring的事务肯定会失效。例如,如果使用的数据库为MySQL,并且选用了MyISAM存储引擎,则Spring的事务就会失效。,以上就是我对Spring事务失效原因的理解。

© 版权声明

相关文章