詳解如何在Spring Boot啟動后執(zhí)行指定代碼
在開發(fā)時有時候需要在整個應用開始運行時執(zhí)行一些特定代碼,比如初始化環(huán)境,準備測試數(shù)據等等。
在Spring中可以通過ApplicationListener來實現(xiàn)相關的功能,不過在配合Spring Boot使用時就稍微有些區(qū)別了。
創(chuàng)建ApplicationListener
這里以填充部分測試數(shù)據為例子,首先實現(xiàn)ApplicationStartup類。
publicclass ApplicationStartup implements ApplicationListener<ContextRefreshedEvent> {
@Override
publicvoidonApplicationEvent(ContextRefreshedEvent event) {
SourceRepository sourceRepository = event.getApplicationContext().getBean(SourceRepository.class);
Source je =new Source("justice_eternal吧","http://tieba.baidu.com/f?kw=justice_eternal");
sourceRepository.save(je);
}
}
這類并不會自動執(zhí)行,需要我們注冊。
硬編碼注冊
Spring Boot有一個類SpringApplication,這個類是Spring Boot的入口,包含所有的配置。
@Configuration
@ComponentScan
@EnableAutoConfiguration
publicclass WebApplication
{
publicstaticvoidmain(String[] args)
{
SpringApplication springApplication=new SpringApplication(WebApplication.class);
springApplication.addListeners(new ApplicationStartup());
springApplication.run(args);
}
}
硬編碼的弊端在于無法區(qū)別環(huán)境,當我們需要部署應用到生產環(huán)境時需要修改代碼。
配置文件
Spring Boot支持profiles模式,在application.properties中配置
spring.profiles.active=dev
然后在application-dev.properties中配置開發(fā)環(huán)境的參數(shù)。
增加一個配置來注冊自定義的監(jiān)聽器
context.listener.classes=cn.acgmo.ApplicationStartup
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring容器的創(chuàng)建過程之如何注冊BeanPostProcessor詳解
關于BeanPostProcessor 各位一定不陌生,今天整理的這篇文章總結了如何注冊BeanPostProcessor,文中有非常詳細的圖文示例,需要的朋友可以參考下2021-06-06
詳解springboot+mybatis多數(shù)據源最簡解決方案
本篇文章主要介紹了詳解springboot+mybatis多數(shù)據源最簡解決方案,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05
java使用CountDownLatch實現(xiàn)多線程協(xié)作
在多線程編程中,經常需要實現(xiàn)一種機制來協(xié)調多個線程的執(zhí)行,以確保某些操作在所有線程完成后再進行,CountDownLatch?就是?Java?并發(fā)包中提供的一種同步工具,下面我們就來看看如何使用CountDownLatch實現(xiàn)多線程協(xié)作吧2023-11-11

