Springboot項目啟動成功后可通過五種方式繼續(xù)執(zhí)行
- 實現(xiàn)CommandLineRunner接口
項目初始化完畢后,才會調(diào)用方法,提供服務(wù)
@Component
public class StartRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("CommandLineRunner====================");
}
}- 實現(xiàn)ApplicationRunner接口
同 CommandLineRunner。只是傳參格式不一樣。CommandLineRunner:沒有任何限制;ApplicationRunner:key-value
@Component
public class StartRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) {
System.out.println("ApplicationRunner=================");
}
}- 實現(xiàn)ApplicationListener接口
項目初始化完畢后,才會調(diào)用方法,提供服務(wù)。注意監(jiān)聽的事件,通常是 ApplicationStartedEvent 或者 ApplicationReadyEvent,其他的事件可能無法注入 bean。
@Component
public class StartListener implements ApplicationListener<ApplicationStartedEvent> {
@Override
public void onApplicationEvent(ApplicationStartedEvent event) {
System.out.println("ApplicationListener================ApplicationStartedEvent");
}
}如果監(jiān)聽的是 ApplicationStartedEvent 事件,則 ApplicationListener 一定會在 CommandLineRunner 和 ApplicationRunner 之前執(zhí)行;
如果監(jiān)聽的是 ApplicationReadyEvent 事件,則 ApplicationListener 一定會在 CommandLineRunner 和 ApplicationRunner 之后執(zhí)行;
順序:
默認是 ApplicationRunner 先執(zhí)行,如果雙方指定了@Order 則按照 @Order的大小順序執(zhí)行,小的先執(zhí)行
- @PostConstruct注解
在項目初始化過程中,就會調(diào)用此方法。如果業(yè)務(wù)邏輯執(zhí)行很耗時,可能會導(dǎo)致項目啟動失敗。
@Component
public class StartInit {
@PostConstruct
public void init() {
System.out.println("@PostConstruct===============================");
}
}- 實現(xiàn)InitalizingBean接口
項目啟動時,調(diào)用此方法
@Component
public class StartSet implements InitializingBean {
@Override
public void afterPropertiesSet() {
System.out.println("InitializingBean====================");
}
}到此這篇關(guān)于Springboot項目啟動成功后可通過五種方式繼續(xù)執(zhí)行的文章就介紹到這了,更多相關(guān)Springboot啟動成功后繼續(xù)執(zhí)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Java8與Java7中HashMap源碼實現(xiàn)的對比
這篇文章主要介紹了在Java8與Java7中HashMap源碼實現(xiàn)的對比,內(nèi)容包括HashMap 的原理簡單介紹、結(jié)合源碼在Java7中是如何解決hash沖突的以及優(yōu)缺點,結(jié)合源碼以及在Java8中如何解決hash沖突,balance tree相關(guān)源碼介紹,需要的朋友可以參考借鑒。2017-01-01
Java中-Xms和-Xmx參數(shù)的使用與默認內(nèi)存設(shè)置
在 Java 程序運行時,內(nèi)存的管理是影響程序性能的關(guān)鍵因素之一,Java 程序使用的內(nèi)存主要由兩部分組成:堆內(nèi)存和棧內(nèi)存,Java 提供了多個參數(shù)來控制堆內(nèi)存的大小,其中最常用的參數(shù)是 -Xms 和 -Xmx,本文將詳細介紹這些參數(shù),需要的朋友可以參考下2024-11-11
@FeignClient?path屬性路徑前綴帶路徑變量時報錯的解決
這篇文章主要介紹了@FeignClient?path屬性路徑前綴帶路徑變量時報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
JavaWeb開發(fā)之Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JC
這篇文章主要介紹了JavaWeb開發(fā)之Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基礎(chǔ)框架的相關(guān)資料,需要的朋友可以參考下2016-12-12
SpringBoot中@Value獲取值和@ConfigurationProperties獲取值用法及比較
在Spring Boot中,@Value注解是一個非常有用的特性,它允許我們將外部的配置注入到我們的Bean中,@ConfigurationProperties用于將配置文件中的屬性綁定到 Java Bean 上,本文介紹了@Value獲取值和@ConfigurationProperties獲取值用法及比較,需要的朋友可以參考下2024-08-08
解決JavaWeb-file.isDirectory()遇到的坑問題
JavaWeb開發(fā)中,使用`file.isDirectory()`判斷路徑是否為文件夾時,需要特別注意:該方法只能判斷已存在的文件夾,若路徑不存在,無論其實際是否應(yīng)為文件夾,均會返回`false`,為了解決這個問題,可以采用正則表達式進行判斷,但要求路徑字符串的結(jié)尾必須添加反斜杠(\)2025-02-02
Spring?Data?JPA系列QueryByExampleExecutor使用詳解
這篇文章主要為大家介紹了Spring?Data?JPA系列QueryByExampleExecutor使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09

