在開發時有時候需要在整個應用開始運行時執行一些特定代碼,比如初始化環境,準備測試數據等等。
在Spring中可以通過ApplicationListener來實現相關的功能,不過在配合Spring Boot使用時就稍微有些區別了。
創建ApplicationListener
這里以填充部分測試數據為例子,首先實現ApplicationStartup類。
publicclass ApplicationStartup implements ApplicationListener<ContextRefreshedEvent> {@OverridepublicvoidonApplicationEvent(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);}}
這類并不會自動執行,需要我們注冊。
硬編碼注冊
Spring Boot有一個類SpringApplication,這個類是Spring Boot的入口,包含所有的配置。
@Configuration@ComponentScan@EnableAutoConfigurationpublicclass WebApplication{publicstaticvoidmain(String[] args){SpringApplication springApplication=new SpringApplication(WebApplication.class);springApplication.addListeners(new ApplicationStartup());springApplication.run(args);}}
硬編碼的弊端在于無法區別環境,當我們需要部署應用到生產環境時需要修改代碼。
配置文件
Spring Boot支持profiles模式,在application.properties中配置
spring.profiles.active=dev
然后在application-dev.properties中配置開發環境的參數。
增加一個配置來注冊自定義的監聽器
context.listener.classes=cn.acgmo.ApplicationStartup
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。
新聞熱點
疑難解答
圖片精選