在Spring Boot启动后执行指定代码

1 1月
预计阅读时间: 1 分钟

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

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

创建ApplicationListener

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


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

硬编码注册

Spring Boot有一个类SpringApplication,这个类是Spring Boot的入口,包含所有的配置。


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

配置文件

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


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

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


10 Replies to “在Spring Boot启动后执行指定代码

    • 可以获取的,文中的例子不就是获取一个Bean吗?因为可以获得ApplicationContext,所以整个上下文的东西都能够拿到

  1. spring:
    # profiles:
    # active: dev
    配置文件采用 yml模式, 能问一下 profile 模式 是什么。。。。 不明白

    • Profile是Spring 3.1开始引入的。可以简单理解为理解为一种配置管理。

      比如我在本地开发用的是内存数据库,生产环境使用的是mysql。我就可以创建两个profile,一个是local,一个prod。然后本地开发active: dev,而生产环境active:prod。这样就可以快速切换配置。

发表评论

电子邮件地址不会被公开。