java註解@PostConstructor
1.spring項目加載數據字典
@PostConstruct註解的方法在項目啓動的時候執行這個方法,也可以理解爲在spring容器啓動的時候執行,可作爲一些數據的常規化加載,比如數據字典之類的。
2.spring項目的定時任務
spring自帶的@schedule,沒有開關,項目啓動總會啓動一個線程;
做項目的時候就使用Java的timer,這個設置開關即可自由的控制,關閉的時候,不會啓動線程;
Java的timer也需要找到一個啓動類,可以放到main函數裏面啓動,這樣的話,代碼的耦合性太高了,
而使用PostConstruct是很乾淨的。
spring中構造函數(Constructor)、@Autowired、@PostConstruct的順序
構造函數-->autowired-->postConstruct(post構造函數)
其實從依賴注入的字面意思就可以知道,要將對象p注入到對象a,那麼首先就必須得生成對象p與對象a,才能執行注入。所以,如果一個類A中有個成員變量p被@Autowired註解,那麼@Autowired注入是發生在A的構造方法執行完之後的。
如果想在生成對象時候完成某些初始化操作,而偏偏這些初始化操作又依賴於依賴注入,那麼就無法在構造函數中實現。爲此,可以使用@PostConstruct註解一個方法來完成初始化,@PostConstruct註解的方法將會在依賴注入完成後被自動調用。
Constructor >> @Autowired >> @PostConstruct