Получите прокси AOP из самого объекта

можно получить прокси данного объекта весной? Мне нужно назвать функцию подкласса. Но, очевидно, когда я делаю прямой звонок, аспекты не применяются. Вот пример:

public class Parent {

    public doSomething() {
        Parent proxyOfMe = Spring.getProxyOfMe(this); // (please)
        Method method = this.class.getMethod("sayHello");
        method.invoke(proxyOfMe);
    }
}

public class Child extends Parent {

    @Secured("president")
    public void sayHello() {
        System.out.println("Hello Mr. President");
    }
}

Я нашел способ достижения этого. Это работает, но я думаю, что не очень элегантно:

public class Parent implements BeanNameAware {

    @Autowired private ApplicationContext applicationContext;
    private String beanName; // Getter

    public doSomething() {
        Parent proxyOfMe = applicationContext.getBean(beanName, Parent.class);
        Method method = this.class.getMethod("sayHello");
        method.invoke(proxyOfMe);
    }
}
21
задан sinuhepop 20 September 2011 в 09:04
поделиться