Мне нужно захватить частные методы внутренних вызовов.
Итак, мне нужно использовать ткачество аспекта в моем проекте весенней загрузки:
@Configuration
@EnableAspectJAutoProxy
public class ApiConfiguration implements WebMvcConfigurer { /*...*/ }
Мне нужно захватить @Service
private выполнение метода:
package net.space.service;
// imports
@Service
public class RepositoryService {
private void privateMethod(String param) {
/* Do something */
}
public void innerCaller() {
this.privateMethod(null);
}
}
ВАЖНО : privateMethod
имеет значение private и вызывается только innerCaller
.
Однако, совет никогда не достигается.Как я могу решить это?
Я также пробовал с этим pointcut:
@Pointcut(value = "execution(* privateMethod(..))")
public void privatePointcut() {
}
и совет:
@AfterReturning("privatePointcut()")
public void groupMetrics(JoinPoint point) throws Throwable {
// Do something
}
Я также пробовал с:
@Pointcut(value = "execution(* net.space.service.RepositoryService.privateMethod(..))")
@Pointcut(value = "execution(* RepositoryService.privateMethod(..))")
РЕДАКТИРОВАТЬ
Я также пытался использовать @EnableLoadTimeWeaving
:
org.springframework.beans.factory.BeanCreationException: Ошибка создания bean-компонента с именем «loadTimeWeaver», определенного в ресурсе пути к классу [org / springframework / context / annotation / LoadTimeWeavingConfiguration.class]: Не удалось создать экземпляр компонента с помощью метода фабрики;вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.instrument.classloading.LoadTimeWeaver]: фабричный метод loadTimeWeaver вызвал исключение;вложенное исключение - java.lang.IllegalStateException: ClassLoader [sun.misc.Launcher $ AppClassLoader] НЕ предоставляет метод addTransformer (ClassFileTransformer).Укажите пользовательский LoadTimeWeaver или запустите виртуальную машину Java с помощью агента Spring: -javaagent: org.springframework.instrument.jar по адресу org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver.j)-5.0.8.RELEASE.jar: 5.0.8.RELEASE]