您好,登錄后才能下訂單哦!
今天小編給大家分享一下@PostConstruct為什么不被調用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
如果在配置文件中配置使用,延遲加載的話
被@Service等注解的類,需要在注入使用的時候,才會被初始化.如果TableInit類只是被定義而沒有在其他地方引用的話,@PostConstrut注釋的方法是不會執行的.
@PostContruct是Java自帶的注解,在方法上加該注解會在項目啟動的時候執行該方法,也可以理解為在spring容器初始化的時候執行該方法。
從Java EE5規范開始,Servlet中增加了兩個影響Servlet生命周期的注解,@PostConstruct和@PreDestroy,這兩個注解被用來修飾一個非靜態的void()方法。
@PostConstruct public void someMethod(){}
或者
public @PostConstruct void someMethod(){}
@PostConstruct注解的方法在項目啟動的時候執行這個方法,也可以理解為在spring容器啟動的時候執行,可作為一些數據的常規化加載,比如數據字典之類的。
其實從依賴注入的字面意思就可以知道,要將對象p注入到對象a,那么首先就必須得生成對象a和對象p,才能執行注入。所以,如果一個類A中有個成員變量p被@Autowried注解,那么@Autowired注入是發生在A的構造方法執行完之后的。
如果想在生成對象時完成某些初始化操作,而偏偏這些初始化操作又依賴于依賴注入,那么久無法在構造函數中實現。為此,可以使用@PostConstruct注解一個方法來完成初始化,@PostConstruct注解的方法將會在依賴注入完成后被自動調用。
Constructor >> @Autowired >> @PostConstruct
以上就是“@PostConstruct為什么不被調用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。