现象
在IDEA启动Spring Boot后,调用了对应的方法,但并没有触发AOP。但是在测试的服务器上是可以的。
AOP使用的是AspectJ,通过maven打包时织入,使用了maven插件aspectj-maven-plugin。因此正常织入,并把打出的jar包放在服务上运行也是正常的。
而在IDEA上跑不行是因为点击Run后,IDEA会重新compile and run。但IDEA没有用aspectj对应的工具来编译,所以没有织入。
解决方案
方案一
通过maven来打包,但在IDEA运行前,不要再次build了。
这个方案显然没那么好,这样每次改完代码都要maven build,好麻烦。
方案二
IDEA安装AspectJ插件,选择它作为编译器。
附:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.14.0</version>
</plugin>
</plugins>
</build>
References: