Кажется, что настройки проксификации изменились между Spring-Boot 1.5+ и 2. +.
В Spring 1.5.20 с @EnableAspectJAutoProxy (proxyTargetClass = false) или просто @EnableAspectJAutoProxy или даже без аннотации @EnableAspectJAutoProxyЯ хотел бы получить JdkDynamicAopProxy.И с @EnableAspectJAutoProxy (proxyTargetClass = true) я бы получил расширенные классы CGLIB.ОК, все хорошо.
С тем же кодом, что и в Spring 2.1.4, я получаю расширенный ServiceImpl для CGLIB, независимо от конфигурации.
Мне не удалось получить прокси JdkDynamicAopProxy с Spring 2+.
Есть ли еще способ сделать это?
Вот мой код:
@SpringBootApplication
@EnableAspectJAutoProxy(proxyTargetClass = false)
public class DemoApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(DemoApplication.class, args);
MyService service = context.getBean(MyService.class);
service.execute();
}
}
@Aspect
@Component
public class ChronoAspect {
@Around("execution(* com.example.demo.service..*.*(..))")
public Object chronoAround(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();
// .....
}
}
public interface MyService {
void execute();
}
@Component
public class ServiceImpl implements MyService {
public void execute() {
System.out.println("Hello execute from Service.execute");
}
}