1. 程式人生 > >spring中Constructor、@Autowired、@PostConstruct的順序【轉】

spring中Constructor、@Autowired、@PostConstruct的順序【轉】

auto bbb 構造 () article lan csdn 初始 ons

其實從依賴註入的字面意思就可以知道,要將對象p註入到對象a,那麽首先就必須得生成對象p與對象a,才能執行註入。所以,如果一個類A中有個成員變量p被@Autowired註解,那麽@Autowired註入是發生在A的構造方法執行完之後的。 如果想在生成對象時候完成某些初始化操作,而偏偏這些初始化操作又依賴於依賴註入,那麽就無法在構造函數中實現。為此,可以使用@PostConstruct註解一個方法來完成初始化,@PostConstruct註解的方法將會在依賴註入完成後被自動調用。

Constructor >> @Autowired >> @PostConstruct

public
Class AAA { @Autowired private BBB b; public AAA() { System.out.println("此時b還未被註入: b = " + b); } @PostConstruct private void init() { System.out.println("@PostConstruct將在依賴註入完成後被自動調用: b = " + b); } }

轉自https://blog.csdn.net/u014515854/article/details/78832790

spring中Constructor、@Autowired、@PostConstruct的順序【轉】