服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 详解如何在Spring Boot启动后执行指定代码

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

2021-05-09 12:53茶爸爸 Java教程

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

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

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

创建applicationlistener

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

?
1
2
3
4
5
6
7
8
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的入口,包含所有的配置。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@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中配置

?
1
spring.profiles.active=dev

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

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

?
1
context.listener.classes=cn.acgmo.applicationstartup

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

原文链接:https://blog.csdn.net/xiaoyu411502/article/details/51396568

延伸 · 阅读

精彩推荐