首頁  >  文章  >  Java  >  為什麼@Autowired Beans在建構函式中為空?

為什麼@Autowired Beans在建構函式中為空?

DDD
DDD原創
2024-11-20 04:17:01271瀏覽

Why Are @Autowired Beans Null in Constructors?

了解建構子中的 Null @Autowired Bean

在基於 Java 的 Spring 應用程式中,@Autowired 依賴項通常在 bean 實例化後注入。這意味著,如果您在建構函式中引用 @Autowired bean,它將為 null。

在提供的程式碼片段中,您嘗試在 DocumentManager 建構子中使用 @Autowired applicationProperties bean,但它最初會傳回 null 。這是預期的行為,因為 @Autowired beans 在構造期間尚不可用。

要避免此問題,請考慮將依賴 @Autowired beans 的任何初始化邏輯移至使用 @PostConstruct 註解的單獨的構造後方法。 @PostConstruct 方法在 bean 實例化之後、bean 準備使用前執行。

在下面修正的程式碼中,startOOServer() 方法已移至@PostConstruct 方法:

透過使用@PostConstruct 方法,初始化程式碼現在可以安全地依賴可用的@Autowired依賴項。

以上是為什麼@Autowired Beans在建構函式中為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn