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

 更新时间:2018年06月15日 08:37:47   作者:茶爸爸  
这篇文章主要介绍了在Spring Boot启动后执行指定代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

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

创建ApplicationListener

这里以填充部分测试数据为例子,首先实现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);
}
}

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

硬编码注册

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java 中动态代理详解及实例

    java 中动态代理详解及实例

    这篇文章主要介绍了java 中动态代理详解及实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • springboot自动重启的简单方法

    springboot自动重启的简单方法

    Springboot提供了热部署的方式,当发现任何类发生了改变,马上通过JVM类加载的方式,加载最新的类到虚拟机中。这篇文章主要介绍了springboot自动重启的实现方法,需要的朋友可以参考下
    2018-04-04
  • 一篇文章带你了解Java之关键字和保留字

    一篇文章带你了解Java之关键字和保留字

    Java 保留字列表 (依字母排序 共14组) : Java保留字是指现有Java版本尚未使用 但以后版本可能会作为关键字使用,希望本篇文章能给您带来帮助
    2021-08-08
  • 实例讲解Java的MyBatis框架对MySQL中数据的关联查询

    实例讲解Java的MyBatis框架对MySQL中数据的关联查询

    这里我们来以实例讲解Java的MyBatis框架对MySQL中数据的关联查询,包括一对多、多对一的关联查询以及自身关联映射的方法等,需要的朋友可以参考下
    2016-06-06
  • springboot实现添加邮件发送及压缩功能

    springboot实现添加邮件发送及压缩功能

    这篇文章主要介绍了springboot实现添加邮件发送及压缩功能 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • java 内嵌Groovy动态脚本操作

    java 内嵌Groovy动态脚本操作

    这篇文章主要介绍了java 内嵌Groovy动态脚本操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • java 获取路径的各种方法(总结)

    java 获取路径的各种方法(总结)

    下面小编就为大家带来一篇java 获取路径的各种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • CommonMark 使用教程:将 Markdown 语法转成 Html

    CommonMark 使用教程:将 Markdown 语法转成 Html

    这篇文章主要介绍了CommonMark 使用教程:将 Markdown 语法转成 Html,这个技巧我们做任何网站都可以用到,而且非常好用。,需要的朋友可以参考下
    2019-06-06
  • Java的反射机制之类加载详解

    Java的反射机制之类加载详解

    这篇文章主要介绍了Java的反射机制之类加载详解,反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载,静态加载是指在编译时期确定要加载的类的类型,即通过class关键字和类名来获取对应类的类型,需要的朋友可以参考下
    2023-09-09
  • Spring5新功能@Nullable注解及函数式注册对象

    Spring5新功能@Nullable注解及函数式注册对象

    这篇文章主要为大家介绍了Spring5新功能详解@Nullable注解及函数式注册对象,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论