@PostConstruct
spring中@Constructor、@Autowired、@PostConstruct的執行順序
轉載:https://blog.csdn.net/zhaoyue007101/article/details/82468281
其實從依賴注入的字面意思就可以知道,要將物件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);
}
}
相關文章
- Spring的Bean生命週期中@PostConstruct註解SpringBeanStruct
- 每日註解學習(九)@PostConstruct和@PreConstruct註解Struct
- Spring @PostConstruct自動執行某初始化方法SpringStruct
- 【spring原始碼學習】Spring @PostConstruct和@PreDestroy例項Spring原始碼Struct
- BeanPostProcessor 介面和@PostConstruct 在使用姿勢上差異BeanStruct
- Java面試題:@PostConstruct、init-method和afterPropertiesSet執行順序?Java面試題Struct
- 【String註解驅動開發】你瞭解@PostConstruct註解和@PreDestroy註解嗎?Struct