У нас есть класс, который реализует несколько интерфейсов.Мы хотели бы добавить некоторые pointcut для всего класса, а не для его конкретного интерфейса.
Как это можно сделать с помощью Spring AOP?Можно ли применить аспект к неинтерфейсному классу?
Да, вы должны использовать CGLIB для прокси классов.См. раздел 7.1.3 документов Spring
Spring AOP также может использовать прокси CGLIB.Это необходимо для прокси-классов, а не интерфейсов.CGLIB используется по умолчанию, если бизнес-объект не реализует интерфейс.Поскольку рекомендуется программировать на интерфейсы, а не на классы, бизнес-классы обычно реализуют один или несколько бизнес-интерфейсов.
Магия заключается в определении proxy-target-class посредством следующего ...
<aop:config proxy-target-class="true"> <!-- other beans defined here... --> </aop:config>