springboot中項目啟動時實現初始化方法加載參數
springboot項目啟動,初始化方法加載參數
今天我看到項目中用到瞭 @PostConstruct 這個註解,之前沒看到過,特地查瞭一下,
1.@PostConstruct說明
被@PostConstruct修飾的方法會在服務器加載Servlet的時候運行,並且隻會被服務器調用一次,類似於Serclet的inti()方法。被@PostConstruct修飾的方法會在構造函數之後,init()方法之前運行。
2.@PreDestroy說明
被@PreDestroy修飾的方法會在服務器卸載Servlet的時候運行,並且隻會被服務器調用一次,類似於Servlet的destroy()方法。被@PreDestroy修飾的方法會在destroy()方法之後運行,在Servlet被徹底卸載之前。
可以看出來這個註解是用來項目啟動時,進行加載參數的初始化參數的操作
然後我就總結瞭下springboot中幾種項目啟動時,可以初始化加載參數的方法。
第一種:註解@PostConstruct
項目啟動之後,可以看到這行代碼在項目啟動的時候已經執行瞭
第二種:實現CommandLineRunner接口
@Order註解裡面的參數是類執行的順序,由小到大順序
類中的輸出語句都打印出來瞭
第三種:springboot的啟動類
最簡單的方法,直接在springboot的啟動類中加上需要初始化的類就行瞭~
springboot初始化參數順序
spring初始化參數順序為
構造器–>自動註入–>PostConstrut–>InitializingBean–>init方法
–>CommandLineRunner接口方法
在容器初始化過程中便會按照如下的順序執行初始化對象的操作。
- 初始化——構造方法!
- 初始化——@PostConstruct方法
- 初始化——InitializingBean接口
- 初始化——init方法!
- —容器啟動完畢後…
- 容器啟動—CommandLineRunner接口方法!
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Springboot啟動執行特定代碼的方式匯總
- 解決springboot遇到autowire註入為null的問題
- 淺談@PostConstruct不被調用的原因
- 使用spring容器在初始化Bean時前和後的操作
- SpringBoot中的Bean的初始化與銷毀順序解析