Это следует из этого вопроса:
Spring autowired bean-компонент для аспекта @Aspect имеет значение null
Мое первоначальное понимание заключалось в том, что при использовании Spring AOP классы, аннотированные с помощью @Aspect, создаются как Spring управляемые bean-компоненты, поэтому внедрение зависимостей будет работать как обычно. Однако кажется, что объект с аннотацией @Aspect создается как синглтон вне контейнера Spring, поэтому мне приходится настраивать его в XML таким образом, чтобы включить его в качестве управляемого bean-компонента Spring:
Теперь это полностью запутало меня. Я думал, что следующая конфигурация будет использовать Spring AOP:
Таким образом, он будет сканировать аннотации @Aspect, используя сканирование компонентов, создавая bean-компоненты, а затем autoproxy создаст beanPostProcessor, который проксирует все bean-компоненты в моем контексте с соответствующими советами. Затем я подумал, что для включения аспекта J мне понадобится совершенно другая конфигурация XML (кстати, я не могу найти пример в документации). Это будет конфигурация, в которой аспект будет использоваться для создания аспектов, которые будут находиться за пределами моего контейнера или которые будут работать, манипулируя байт-кодом, а не проксируя.
Примечание
Это не вопрос о разнице между Spring AOP и аспектом J, это хорошо сформулировано здесь: