在建構函式中自動組裝Bean:了解空引用
使用Spring 管理的POJO 時,通常會使用@Autowired 注入依賴項註解。然而,一些開發人員遇到了一個令人費解的問題,即在建構函數中存取時自動組裝的 bean 為 null。本文旨在澄清這種行為並提供解決方案。
如同提供的答案中所提到的,自動組裝通常發生在物件建構之後。這意味著建構函式中對自動裝配 bean 的任何參考都可能為 null。為了解決這個問題,建議將初始化程式碼從建構函式移到用 @PostConstruct 註解的單獨方法。
以下修改後的程式碼片段說明了這種方法:
@Component public class DocumentManager implements IDocumentManager { @Autowired private IApplicationProperties applicationProperties; // Move initialization code to a PostConstruct method @PostConstruct public void init() { startOOServer(); } private void startOOServer() { if (applicationProperties != null) { // Rest of the initialization code here } } // ... Rest of the class remains the same }
透過註解init方法加上@PostConstruct,Spring會在bean被構造之後但在完全初始化之前自動調用它。這確保了 applicationProperties bean 可在初始化邏輯中使用。
以上是為什麼我的自動組裝 Bean 在建構函式中為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!