Возможно, вы используете не AspectJ, а Spring AOP. Итак, есть несколько вещей, которые следует учитывать:
- Обычно аспекты Spring AOP работают на
@Component
s, а не на элементах, отличных от Spring. Для этого вам действительно понадобится AspectJ. Так что ваши источники Spring AOP так или иначе ищут эту аннотацию.
- Аспекты Spring AOP также должны быть
@Component
s, но исключаются из автоматического плетения аспектов. В AspectJ вам потребуются особые меры предосторожности, чтобы исключить один аспект, связанный с другим, с такой же аннотацией, что и в обычном коде приложения. Вы должны учитывать это в ситуациях, когда вы объединяете Spring AOP с полным AspectJ.
Теперь, что касается вашего вопроса AOP, вы не можете перехватывать точки соединения в аннотированном классе с помощью @annotation()
pointcut, как вы уже заметили. Вам нужно использовать @within()
вместо этого, например ::
@within(org.springframework.stereotype.Component)
Обратите внимание, что это будет перехватывать все точки соединения в аннотированных классах, то есть в случае Spring AOP все выполнения методов. Он не будет перехватывать создание бина, если, как показывает ваше лог-сообщение, это ваша цель.