Создание миксина с помощью Spring AOP Introductions

Может ли кто-нибудь предоставить пример фрагмента кода, который сшивает два java-интерфейса, используя введение spring-aop (mixin)?

Я ищу конфигурацию стиля аннотации AspectJ. Кроме того, конкретный вариант использования, который у меня есть, заключается в том, чтобы сшить вместе несколько java-бинов, каждый из которых реализует свои собственные интерфейсы. Итак, вместо кодирования делегата, если бы я мог просто уйти с помощью Spring XML, это было бы здорово.


person kuriouscoder    schedule 27.01.2011    source источник


Ответы (2)


Вы можете использовать @DeclareParents или <aop:declare-parents>, чтобы получить поведение примеси. Например,

@DeclareParents(value="service.*", defaultImpl=AuditRecorderDefaultImpl.class)
private AuditRecorder mixin;

будет смешивать все классы в пакете service с интерфейсом AuditRecorder, автоматически перенаправляя каждый метод в AuditRecorderDefaultImpl.

Вы можете увидеть рабочие примеры этого из AspectJ в загружаемых источниках Action. Вы также можете увидеть подробное объяснение в документации Spring.

person ramnivas    schedule 27.01.2011

Демонстрация, основанная на книге Spring in Action, 4-е издание, находится здесь, конфигурация выполнена в стиле JavaConfig. с @ComponentScan

person fall    schedule 01.07.2017
comment
Я не мог понять, как называются введенные методы. В книге «Весна в действии 4» об этом ничего не сказано. Этот пример помог, спасибо. - person Razorfever; 10.11.2017