首页 > 开发 > Java > 正文

详解如何在Spring Boot启动后执行指定代码

2024-07-14 08:41:16
字体:
来源:转载
供稿:网友

在开发时有时候需要在整个应用开始运行时执行一些特定代码,比如初始化环境,准备测试数据等等。

在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武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表