今天工作中遇到了一个问题,同样的一行代码在两个方法中都有,因为工作特殊的原因无法贴出代码
将举例记录
public class AA{
public void methodA(account){
sortSequenceFor(account,this.configOrdder);
}
}
public class AA{
public void methodB(account){
handleLogic();
sortSequenceFor(account,this.configOrdder);
}
}
使用:
methodA是直接调用的,this对象正常,所有的属性都有,该方法也能正常调用
methodB, 在调用前直接创建了一个局部变量AA的对象,然后通过才调用的methodB
问题:
我们发现methodB中的this.configOrder为null,一开始很困惑为什么methodA 都正常且有只,而methodB里面就成null了,后来突然想到这个this会不会有问题,就debug跟了下,果然两个this不一样,第一个所有的属性值都有,第二个只有一个new出来的空对象。
是我们的逻辑出了问题,应该始终用启动时spring注入的对象。
解决办法:
在调用methodB的类中注入AA 类,删掉之前new的对象,这样就正常了
知识点:spring bean注入