我正在使用Spring4。
一共有三个bean:bean1
和bean2
和bean3
,在我的bean1的@PostConstruct
方法中,我调用bean2的方法,bean2
的这个方法将调用bean3的方法,并且我得到了一个NPE,因为调用了bean2
中的方法,bean3
没有尚未注入(inject)。
如何避免这种情况发生?代码看起来像这样:
@Service
public class Bean1 {
@Autowired
private Bean2 bean2;
@PostConstruct
public void init() {
// invoke bean2's method
bean2.test();
}
}
@Service
public class Bean2 {
@Autowired
private Bean3 bean3;
public void test() {
// invoke bean3's method,got a null pointer ex,because bean3 is null.
bean3.xxx();
}
}
最佳答案
无论您发布什么代码,我都不认为您可能会遇到任何问题。 只需检查您自己创建 bean 的整个代码,而不是通过 spring 创建它,这只是一种情况。
如果你自己创建bean,那么spring不会注入(inject)任何东西并提供bean对象为null。发布
关于java - 在 @PostConstruct 中调用另一个 bean 的方法引发了一个空指针 ex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58927924/