单体项目 数据源是一个mysql
1: 在springboot中的controller层添加事务是不生效的原因是什么?
2: 若在sevice层和dao层中间再加入一层调用,那么此时在service中的事务是否会生效,为什么?
自己验证的一个视频
请各位赐教
单体项目 数据源是一个mysql
1: 在springboot中的controller层添加事务是不生效的原因是什么?
2: 若在sevice层和dao层中间再加入一层调用,那么此时在service中的事务是否会生效,为什么?
自己验证的一个视频
请各位赐教
在Spring Boot中添加事务,需要满足以下条件:
确保应用程序已经正确配置了数据源和事务管理器。
事务必须被@Transactional注解标注。
在需要应用事务的方法中调用了其他的标记了@Transactional注解的方法,即使用到了AOP代理。
如果以上三个条件都满足,那么在Controller层添加事务应该是有效的。如果不生效,可以考虑检查是否满足以上三个条件。
如果在Service层和DAO层之间添加了一层调用,那么在Service中的事务仍然会生效,因为Spring使用的是基于代理的事务管理。代理类会包装调用目标方法的对象,以便在方法执行时启用事务管理。只要@Service注解添加到该类中,并且在调用方法上使用了@Transactional注解,代理类将为目标方法添加事务。因此,在Service层和DAO层之间添加另一层调用不会影响事务管理的工作原理。