Java程序初始化啟動自動執(zhí)行的三種方式
Java程序初始化啟動自動執(zhí)行的三種方式
@PostConstruct注解
將此注解加在要執(zhí)行的方法上,則程序初始化啟動的時候,會執(zhí)行此方法,一般用來初始化必要的程序初始信息
注意:
加了postconstruct注解的方法,如果執(zhí)行失敗,整個程序會無法正常啟動!這個方法執(zhí)行不完,整個程序也啟動不了?。?!
詳情請看我的錯誤總結 開發(fā)錯誤總結---@PostConstruct注解導致的程序無法啟動(@PostConstruct的執(zhí)行)
開始試驗:
- 啟動類
@SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class,args); } }
- 測試類
@Service @Slf4j public class PostConstructTest { @PostConstruct public void testPostConstruct () { log.info("程序初始化執(zhí)行"); } }
- 啟動看效果
CommandLineRunner接口
- 實現(xiàn) CommandLineRunner接口
@Slf4j @Component public class InitCommandLineRunner implements CommandLineRunner { @Override public void run(String... args) throws Exception { log.info("實現(xiàn)CommandLineRunner接口的程序初始化"); } }
- 啟動看效果
ApplicationRunner 接口
- 實現(xiàn) ApplicationRunner 接口
@Component @Slf4j public class InitApplicationRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { log.info("實現(xiàn)ApplicationRunner接口程序初始化"); } }
- 啟動看效果
@Order注解設置啟動順序
我們給前兩個實現(xiàn)ApplicationRunner 接口和CommandLineRunner 接口的啟動類設置啟動順序
- 為了讓效果明顯一點,我們讓程序執(zhí)行完第一個之后睡眠一下
@Slf4j @Component @Order(value = 1) public class InitCommandLineRunner implements CommandLineRunner { @Override public void run(String... args) throws Exception { log.info("實現(xiàn)CommandLineRunner接口的程序初始化"); Thread.sleep(2000); } }
@Component @Slf4j @Order(value = 2) public class InitApplicationRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { log.info("實現(xiàn)ApplicationRunner接口程序初始化"); } }
- 執(zhí)行一下來看效果
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java中InputStream轉為MultipartFile的解決方案
這篇文章主要介紹了java中InputStream轉為MultipartFile的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03詳解java爬蟲jsoup解析多空格class數(shù)據(jù)
在本篇內容中小編給大家分享了java爬蟲jsoup怎么解析多空格class數(shù)據(jù)的方法和技巧,需要的朋友們跟著學習下。2018-12-12IDEA提示內存不足 low memory的完美解決方法(親測好用)
這篇文章主要介紹了IDEA提示內存不足 low memory的完美解決方法(親測好用),這里以IDEA2022版本為例,在IDE中 幫助(help)–>change memory setting(改變內存設置),具體設置辦法文中給大家詳細講解,需要的朋友可以參考下2023-01-01spring data jpa 查詢自定義字段,轉換為自定義實體方式
這篇文章主要介紹了spring data jpa 查詢自定義字段,轉換為自定義實體方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06