Loading...

Idea启动SpringBoot AOP失效的解决方法

现象

在IDEA启动Spring Boot后,调用了对应的方法,但并没有触发AOP。但是在测试的服务器上是可以的。

AOP使用的是AspectJ,通过maven打包时织入,使用了maven插件aspectj-maven-plugin。因此正常织入,并把打出的jar包放在服务上运行也是正常的。

而在IDEA上跑不行是因为点击Run后,IDEA会重新compile and run。但IDEA没有用aspectj对应的工具来编译,所以没有织入。

解决方案

方案一

通过maven来打包,但在IDEA运行前,不要再次build了。

0c4acd989a5a1b72e130b57785fd7e78.png


1749b01228c669900f9d0fae09bbef6f.png

这个方案显然没那么好,这样每次改完代码都要maven build,好麻烦。

方案二

IDEA安装AspectJ插件,选择它作为编译器。

c80e598d8348b5f3079bdb576f03a0b3.png


86e2a069d10f67b57db5cd9c03cbab3f.png

附:

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>aspectj-maven-plugin</artifactId>
      <version>1.14.0</version>
    </plugin>
  </plugins>
</build>

参考文献: https://www.pkslow.com/archives/idea-fail-to-trigger-spring-aop

0

回到顶部