Можно ли использовать @DeclareMixin с Spring AOP? Или они поддерживают только @DeclareParents?
Я хочу написать аспект, который смешивает java.beans.PropertyChangeSupport с java bean-компонентом:
public class PropertyChangeSupportWithInterface extends PropertyChangeSupport
implements IObservableBean {
public PropertyChangeSupportWithInterface(Object sourceBean) {
super(sourceBean);
}
}
(IObservableBean просто содержит все общедоступные методы из PropertyChangeSupport)
@Aspect
@Named
public class ObservableAspect{
@DeclareMixin("@ObservableBean *")
public static IObservableBean createDelegate(Object object) {
return new PropertyChangeSupportWithInterface(object);
}
}
Кажется, что этот аспект никогда не используется, что заставляет меня думать, что @DeclareMixin не поддерживается ткачеством времени выполнения, выполненным Spring AOP.
Есть ли способ заставить это работать с Spring AOP?
Здесь вы можете найти (не) работающий пример (многомодульный проект Maven):
https://github.com/BernhardBln/SpringAOPObservableBean
См. (Единственный) тестовый пример в подмодуле springaop-observable-bean-aspect.