springboot 让事务生效@Transactional的注意事项
1、在启动类上加上注解 @EnableTransactionManagement,即将事务交给spring管理
@EnableTransactionManagement
2、在类上或者方法上加上 @Transactional (rollbackFor = {Exception.class})
@Transactional(rollbackFor = {Exception.class})
public String test() {
return "aaa";
}
注意:
@Transactional可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有public方法将都具有该类型的事务属性。
但是Spring建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。
另外,@Transactional注解应该只被应用到public方法上,这是由Spring AOP的本质决定的。
必须抛出异常才会回滚,若使用try-catch对其异常捕获则不会进行回滚!
手动回滚:
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义