Obtenez de l'AOP proxy de l'objet lui-même

Est possible d'obtenir le proxy d'un objet donné au Printemps? J'ai besoin d'appeler une fonction d'une sous-classe. Mais, évidemment, quand je fais un appel direct, les aspects ne sont pas appliquées. Voici un exemple:

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");
    }
}

J'ai trouvé un moyen d'y parvenir. Cela fonctionne, mais je pense n'est pas très élégant:

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);
    }
}
InformationsquelleAutor sinuhepop | 2011-09-20