AspectJ время загрузки не работает на бобах Spring

Я работаю над проектом, который использует Java (не XML) вариант конфигурации Spring для подключения зависимостей. Он также имеет логику профилирования, которая должна быть сплетена через AspectJ на нужные методы (с помощью аннотаций). Настройка работает, и я вижу, как классы из моего желаемого пакета переплетаются, и из них выводятся данные профилирования.

Проблема в том, что ткачество не работает@Bean классы. Я включил отладку вaop.xml с помощью:

<weaver options="-XnoInline -Xreweavable -verbose -debug -showWeaveInfo">

И я вижу, что классы в моем желаемом пакете сплетены, но не бобы в конфигурации. Если я создаю экземпляры классов напрямую (а не внедряю их), ткачество работает.

К сожалению, я не могу опубликовать реальный код здесь, но вот глупый пример:

@Configuration
@EnableLoadTimeWeaving(aspectjWeaving = EnableLoadTimeWeaving.AspectJWeaving.ENABLED)
public class MySpringConfig {
    @Bean
    AnnotatedClass1 annotatedClass1() {
        return new AnnotatedClass1(new AnnotatedClass2());
    }
}

AnnotatedClass1 а такжеAnnotatedClass2 живут в одной и той же упаковке, и ткацкие работы выполняются непосредственно с экземпляром, а не с возвращенным бобом.

Я искал черезДокументы Spring AOP но я не могу найти ничего, связанного с этим. Есть некоторая магия, которую нужно сделать для автоматического проксирования, и некоторые ограничения для SpringAOP, но переплетение времени загрузки должно сработать, насколько я могу судить - я пробовал, например, частные методы, и это сработало.

Ответы на вопрос(1)

Ваш ответ на вопрос