微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

这篇文章主要介绍了在Spring Boot启动后执行指定代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

在Spring中可以通过ApplicationListener来实现相关的功能,不过在配合Spring Boot使用时就稍微有些区别了。

创建ApplicationListener

这里以填充部分测试数据为例子,首先实现ApplicationStartup类。

publicclass ApplicationStartup implements ApplicationListener { @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); } }

这类并不会自动执行,需要我们注册

硬编码注册

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); } }

硬编码的弊端在于无法区别环境,当我们需要部署应用到生产环境时需要修改代码

配置文件

Spring Boot支持profiles模式,在application.properties中配置

spring.profiles.active=dev

然后在application-dev.properties中配置开发环境的参数。

增加一个配置来注册自定义的监听器

context.listener.classes=cn.acgmo.ApplicationStartup

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐