У меня была та же проблема, оказывается, что проксирование в Spring AOP тратит МНОГО времени на загрузку классов с помощью bcel (без кэширования, поэтому загружая снова и снова те же классы, как java.lang.Object ...), когдапытаясь выяснить, какие советы применяются.Его можно несколько улучшить, написав более точные срезы точек (используйте внутри, например, @within), но я нашел решение, которое работало бы лучше, если бы все ваши точки были написаны с помощью @ annotation.
1)Деактивируйте авто-прокси с помощью: spring.aop.auto = false
2) Напишите собственный подкласс AnnotationAwareAspectJAutoProxyCreator для фильтрации bean-компонентов, которые должны быть оформлены в соответствии с вашими собственными критериями, например, этот основан на пакете и аннотациях:
@Override
protected Object[] getAdvicesAndAdvisorsForBean(Class<?> beanClass, String beanName, TargetSource targetSource) {
if (beanClass != null && isInPackages(beansPackages, beanClass.getName()) && hasAspectAnnotation(beanClass)) {
return super.getAdvicesAndAdvisorsForBean(beanClass, beanName, targetSource);
} else {
return DO_NOT_PROXY;
}
}
В моем случае время запуска сократилось с 60 до 15 секунд.
Надеюсь, это поможет кому-то и белым медведям