开发者社区> 问答> 正文

使用spring-aspects包无效的问题:报错

@EnableTransactionManagement(mode=AdviceMode.ASPECTJ)

@EnableCaching(mode=AdviceMode.ASPECTJ)

使用以上注解,事务和缓存没有任何反应,打断点跟踪发现应该切入的对象也没有被代理。加入了spring-aspects包

自己写的aspect确有用,请问这是什么原因?

展开
收起
kun坤 2020-06-05 23:00:54 492 0
1 条回答
写回答
取消 提交回答
  • 在根配置类上面加了@EnableLoadTimeWeaving,它会在当前容器加载完后再向web类加载器添加ClassFileTransformer,导致当前容器的Bean没有织入。

    解决方法:把所有bean都放到spring mvc的容器,或者放到其它子容器,总之不要放在根容器,如果不特意处理,根容器的bean是不会织入的。

    另外4.0及以后的版本在tomcat下面跑不需要修改tomcat的context了,因为4.0的版本添加了TomcatLoadTimeWeaver类。

    还有个问题,织入后打点断点那么爽了。

    ######

    AbstractAspectJAdvisorFactory.isAspect方法说明写到,使用AJC编译的Aspectj类无法通过Spring AOP来处理。没大虾帮忙,继续看看到底怎么用。

    2020-06-05 23:01:04
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多