[英]Invoke another bean's method in @PostConstruct raised a null pointer ex
我正在使用 Spring4。
有三個bean: bean1
和bean2
和bean3
,在我bean1的@PostConstruct
方法中,我調用bean2的方法, bean2
的這個方法會調用bean3的方法,我得到了一個NPE,因為bean2
中的方法被調用了, bean3
沒有還沒注射。
如何避免這種情況? 代碼看起來像這樣:
@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 將不會注入任何東西並提供 bean object 作為 null。 郵政
您需要@DependsOn
注釋來確保 bean 初始化按照您期望的順序發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.