You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置AspectJ后@Transactional同类调用仍不生效该如何排查?

遗漏配置排查清单
  • 启动参数缺少aspectjweaver的javaagent配置
    你当前只配置了spring-instrument的代理,AspectJ LTW模式必须同时添加aspectjweaver的代理参数,完整启动参数如下:
    -javaagent:C:\xx\xx\.m2\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar -javaagent:C:\xx\xx\.m2\repository\org\springframework\spring-instrument-5.3.12.jar
    
  • 检查@Transactional注解的使用规范
    1. 确认注解导入的是org.springframework.transaction.annotation.Transactional,而非javax.transaction包下的同名注解
    2. 标注了@Transactional的m2方法不能是private、protected或包访问权限,Spring事务默认仅识别public方法上的事务注解
  • 检查配置类生效状态
    确认你的事务配置类被Spring扫描到,没有被排除在组件扫描范围外,也没有被条件注解(比如@ConditionalOnMissingBean等)过滤掉
  • 验证LTW织入是否生效
    启动时添加JVM参数-Daj.weaving.verbose=true,观察控制台是否输出你的业务类被AspectJ织入的日志,没有输出则说明织入流程本身没有执行,需要重新检查LoadTimeWeaving的相关配置
  • 确认事务管理器配置正常
    单数据源场景下Spring Boot会自动装配事务管理器,多数据源场景需要手动指定事务管理器,或者在@Transactional注解中通过transactionManager属性指定对应事务管理器的bean名称

内容的提问来源于stack exchange,提问作者Hayi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:06:04