您现在的位置是:首页 > 正文

Spring Boot 系统启动任务

2024-02-01 04:48:05阅读 3

点此查看全部文字教程、视频教程、源代码

1. 背景

有时候我们会希望在Spring Boot项目启动时,完成一些初始化工作。

例如加载初始化的缓存信息,初始化一些系统运行的基本参数。

此时,就可以通过Spring Boot系统启动任务实现,有两种实现方式,分别是ApplicationRunnerCommandLineRunner

2. ApplicationRunner系统启动任务

定义一个类,实现ApplicationRunner接口,注意该类需要通过@Component注解将其注册为Spring容器管理的组件。

@Component
public class MyApplicationRunner implements ApplicationRunner {
	@Override
	public void run(ApplicationArguments args) throws Exception {
		System.out.println("系统启动任务MyApplicationRunner");
	}
}

当Spring Boot项目启动后,会调用run方法。

3. CommandLineRunner系统启动任务

CommandLineRunner写法和ApplicationRunner基本相同,唯一区别是run方法参数有些不同,代码如下:

@Component
public class MyCommandLineRunner implements CommandLineRunner {
	@Override
	public void run(String... args) throws Exception {
		System.out.println("系统启动任务MyCommandLineRunner");
	}
}

当Spring Boot项目启动后,同样会先会调用run方法。

4. 小结

两种方式没有优劣之分,个人认为ApplicationRunner这个名字更加简洁优雅,盘它就对了!

网站文章

  • DVWA--存储型XSS(初中高)

    DVWA--存储型XSS(初中高)

    选择“View Source”查看源程序,发现服务器端对message框内容使用了htmlspecialchars() 函数进行转义,对name框使用str_replace()函数进行替换。选择“Vi...

    2024-02-01 04:47:36
  • Spring框架源码(五) @configuration源码深度解析

    Spring框架源码(五) @configuration源码深度解析

    Configuration 注解是spring-context模块提供的一个给开发者使用的配置类注解,开发者可以通过@Configuration注解来定义配置类,也可以使用xml形式注入。例如配置数据...

    2024-02-01 04:47:30
  • Aria2下载软件的Linux安装、配置文件编辑、开机启动、浏览器插件连接

    Aria2下载软件的Linux安装、配置文件编辑、开机启动、浏览器插件连接

    1. 安装。 这里主要是在Debian及衍生发行版上的操作。 直接用 apt install aria2 即可 apt update apt install aria2 # aria2 的命令是 ar...

    2024-02-01 04:47:23
  • 新起点

    2019年7月9日:进入新的工作环境,面对全新的电脑,就像现在的自己一样,犹如一张白纸,可以随意涂画。年轻的心斗志昂扬,重新出发创出属于自己的精彩。1. 不断学习2.认真负责3.勤学好问...

    2024-02-01 04:47:17
  • monkey环境搭建

    monkey环境搭建

    monkey的安装环境需要4块:1.Java环境JDK的安装2.Android SDK环境3.启动模拟器(夜神模拟器)或者真机4.执行monkey测试命令第一部分:Java环境的安装1)下载好JDK的安装包后,双击安装2)配置环境变量:我的电脑--右键属性--高级系统设置--环境变量在系统变量处点击新建:填写变量名和JDK的安装路径JAVA...

    2024-02-01 04:46:47
  • 记录自己第一次科研经历

    这里写自定义目录标题科研之路研究方向选择功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右Sma...

    2024-02-01 04:46:40
  • 什么是Intel Elkhart Lake?专用于物联网的处理器系列

    什么是Intel Elkhart Lake?专用于物联网的处理器系列

    Elkhart Lake将部署的关键应用程序将包括长时间的正常运行时间、不间断的操作、在空间受限的位置实施,以及频繁的冲击、振动和温度变化。与Bay Trail相比,Elkhart Lake处理器的P...

    2024-02-01 04:46:33
  • Missing type in composite literal

    首先来看一个示例,它在idea中会直接提示错误。 package main import ( "fmt" ) type Person struct { Name string Ag...

    2024-02-01 04:46:06
  • react-router-dom v6.5.0实现路由守卫RouterBeforeEach及缓存

    react-router-dom v6.5.0实现路由守卫RouterBeforeEach及缓存

    最近留意下react-router-dom有更新到6.6.1的版本,在这个版本增加了不少的功能。研究了下,可以利用其提供的API实现一个类似Vue的路由守卫,从而简便达到路由鉴权的业务场景。这里我是使...

    2024-02-01 04:45:58
  • Java中抽象类和接口

    一.抽象类  在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为: 1 abstract void fun();   抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法...

    2024-02-01 04:45:53