3 回答
TA贡献1788条经验 获得超4个赞
我有同样的问题,我克服了通过实现Spring的ApplicationContextAware,BeanNameAware并实施相应的方法如下。
class ABC implements ApplicationContextAware,BeanNameAware{
@Override
public void setApplicationContext(ApplicationContext ac) throws BeansException {
applicationContext=ac;
}
@Override
public void setBeanName(String beanName) {
this.beanName=beanName;
}
private ApplicationContext applicationContext;
private String beanName;
}
然后我在调用同一类的方法时将其替换this.为 ((ABC) applicationContext.getBean(beanName)).。这样可以确保对同一类方法的调用仅通过代理进行。
因此method1()更改为
public void method1(){
.........
((ABC) applicationContext.getBean(beanName)).method2();
...........
}
希望这可以帮助。
添加回答
举报