SpringBoot结合LoadTimeWeaver、AspectJ创建切面问题(addTransformer(),NoSuchMethodException:aspectOf())

1.问题描述:java.lang.IllegalStateException: ClassLoader [org.springframework.boot.devtools.restart.classloader.RestartClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method. Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:org.springframework.instrument.jar

解决方法:通过JVM-javaagent 参数设置LTW(LoadTimeWeaver)的织入器类包,以代理JVM默认的类加载器。启动SpringBoot应用时,需要指定JVM Argumengs来替换掉其默认类加载器。

STS(或Eclipse)中设置:Eclipse->Windows->Preferences->Java->Installed JRE->选择对应JRE->Edit->将-javaagent:C:\Users\lib\spring-instrument-5.1.5.RELEASE.jar 填写到Default VM arguments.

SpringBoot结合LoadTimeWeaver、AspectJ创建切面问题(addTransformer(),NoSuchMethodException:aspectOf())SpringBoot结合LoadTimeWeaver、AspectJ创建切面问题(addTransformer(),NoSuchMethodException:aspectOf())

2.问题描述:Caused by: java.lang.NoSuchMethodException: com.demo.aop.ActivityEventAspect.aspectOf()。

解决方法:同问题1步骤,需在Default VM arguments中添加jar包默认启动:-javaagent:C:\Users\lib\aspectjweaver-1.9.2.jar.其会在类加载时,将aspectOf()等方法加载到对应的切面类中。