簡體   English   中英

在 @PostConstruct 中調用另一個 bean 的方法引發了一個 null 指針 ex

[英]Invoke another bean's method in @PostConstruct raised a null pointer ex

我正在使用 Spring4。

有三個bean: bean1bean2bean3 ,在我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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM