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();
...........
}
希望這可以幫助。
添加回答
舉報