spring boot2 (29)-ApplicationRunner和CommandLineRunner初始化

什么是 SpringBoot 的 ApplicationRunner? 通过这个案例,我们展示了如何在应用启动后立即执行一些初始化逻辑。在这个特定场景中,帮助我们实现了定时任务的自动加载和启动,简化了应用的启动流程并提高了可维护性。 阅读详情

上一篇讲了缓存,当访问缓存时,发现没有数据就查询数据库并写入缓存。也可以在项目启动时就直接查询并写入缓存,以免用户请求的时候再去查询,此时就可以使用ApplicationRunner或者CommandLineRunner

CommandLineRunner

用法很简单,只要实现该接口,启动项目后会立即使用run方法,args是启动参数。

@Component
public class InitialRunner1 implements CommandLineRunner {

	public void run(String... args) throws Exception {
		System.out.println("初始化业务");

ApplicationRunner

和CommandLineRunner用法是一样的,只是对args启动参数进行了封装,下面会讲

@Component
public class InitialRunner2 implements ApplicationRunner {

	public void run(ApplicationArguments args) throws Exception {
		System.out.println("初始化业务");

ApplicationArguments参数

--param1=value1
--param1=value2
--param2=value3

在eclipse运行配置中添加以上启动参数,注意:其中有两个param1参数,参数名以--开头。


修改run方法代码,getOptionValues方法得到的是list,其中包含param1参数的所有值,value1和2

public void run(ApplicationArguments args) throws Exception {
		System.out.println(args.getOptionValues("param1").get(0));
		System.out.println(args.getOptionValues("param1").get(1));
		System.out.println(args.getOptionValues("param2").get(0));
	}

运行结果:


@Order 执行顺序

上面声明了两个初始类,我们需要它们按照一定的顺序来执行,则可以使用@Order注解,如下:

@Order(1)
@Component
public class InitialRunner1 implements CommandLineRunner 
@Order(2)
@Component
public class InitialRunner2 implements ApplicationRunner

@Order参数数字越小的先执行

基于拟蒙特卡洛模拟法的随机潮流计算matlab程序 由式(4-11)可知,蒙特卡洛模拟法的计算量不受电力系统规模大小影响,因此该方法在一些复杂的电力系统中可以得到应用,包括处理电力系统中有多个间歇性新能源接入的问题,解决系统中多个节点之间相关性问题等等。本章在此基础上提出了基于拟蒙特卡洛模拟的随机潮流计算方法,并且对拟蒙特卡洛法中的拟随机数序列进行了改进,大大提高了随机潮流的计算效率。模拟法的具体思路如下:基于实际工程问题的求解需要,建立与之相对应的随机模拟过程和随机概率模型,使得它们的参数,包括概率分布或者数学期望,能够等于问题的实际解; 阅读详情

相关推荐

Win11安装Office2021

windows11安装office2021。

1万+

CommandLineRunner-项目启动可进行初始化操作

【代码】CommandLineRunner-项目启动可进行初始化操作。

weixin_62971115的博客 292

NRF52832调试方法1——HardFault_Handler问题定位

一、遇到问题 keil debug模式下,直接点击全速运行(Run)发现程序卡死,点击stop按钮后,停到了HardFault_Handler位置,如下图所示。 此时使用navigate backwards(蓝色左箭头)是无效的,找不到程序卡在哪里。 二、解决办法 此时首先观察register窗口 若Stack为MSP,则复制R13(SP)的值到memory观察窗的地址搜索栏。每一行显示连续的28个地址上的存储信息,每个地址上存有一个字节。 从第21个位置起的连续四个字节是LR的值,

小梁的博客 3651

SpringBoot使用CommandLineRunner预加载数据

在使用SpringBoot构建项目时,我们通常有一些预先数据的加载。那么SpringBoot提供了一个简单的方式来实现–CommandLineRunner。 CommandLineRunner是一个接口,我们需要时,只需实现该接口就行。如果存在多个加载的数据,我们也可以使用@Order注解来排序。 案例: 分别定义了一个数据加载类MyStartupRunner1,排序为2;以及另一个数据...

米不开朗基罗的博客 2872

软件测试——白盒测试实验报告,输入年月日算星期几

软件测试——白盒测试实验报告,输入年月日算星期几,测试用例设计和结果展示

weixin_52278161的博客 2746

手把手教你用AD9834 DDS模块DIY一个可调信号源(附AD原理图/PCB/程序)

本文详细介绍了如何使用AD9834 DDS模块DIY一个高精度可调信号源,涵盖硬件搭建、原理图解读、PCB优化和程序烧录等关键步骤。通过STM32控制实现0-10MHz频率范围输出,特别适合电子设计与射频实验,提供完整的AD原理图、PCB设计和程序代码参考。

weixin_31854867的博客 409

CommandLineRunner解释学习

CommandLineRunner是Spring Boot提供的一个便捷接口,它允许开发者在Spring应用程序启动后执行一些特定的代码。这个接口特别适用于那些需要在服务器启动时立即执行的任务,比如数据初始化、发送通知或者执行一些定时任务。CommandLineRunner接口只包含一个方法run,这个方法将在Spring应用程序启动后被调用。开发者可以实现这个接口并定义run方法的具体逻辑。

qq_40702349的博客 7552

windows10下 iperf3测试带宽

客户端输入:"iperf3.exe -u -c 服务器IP地址 -b 5g" //客户端给服务器发送udp数据包,最大带宽为5g。客户端输入:“iperf3.exe -c 服务器IP地址 -P 10“//表示客户端10路并行给服务器发送TCP包;上图可知:带宽是15Gbps(这里不知道为什么下面测试的UDP会比这里TCP慢 按道理UDP不可能比TCP慢的5.)3. 验证是否下载成功,在打开的窗口中输入“iperf3.exe -v”,会出现安装的版本,表示安装成功了。5. iperf3参数。

xiaoqixiaoguai的博客 5895

CommandLineRunner和ApplicationRunner

本文主要来自:https://blog.youkuaiyun.com/zongzhankui/article/details/78681942   前言: Spring Boot如何解决项目启动时初始化资源,在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等。 为了达到这个目的,我们需要使用CommandLineRunner或Appli...

小强签名设计 的博客 2万+

手把手教你学Simulink——基于全桥 LLC 谐振变换器的双向 DC-DC 建模与仿真

本文详细介绍了基于Simulink的双向全桥LLC谐振变换器建模与仿真方法。内容涵盖:1)LLC谐振变换器背景与双向化挑战;2)系统架构设计及关键数学推导(FHA增益分析、双向控制逻辑);3)Simulink建模步骤(功率级搭建、PWM生成、同步整流实现);4)仿真结果分析(正向/反向工作验证、ZVS特性);5)工程实践建议(增益微调、代码生成与HIL测试)。通过手把手教学,帮助读者掌握950V↔48V双向LLC变换器的完整设计流程,实现高效率能量双向流动的同时保持软开关特性,适用于储能系统、车载充电等应用

MHD0815的博客 179

YOLOv11改进策略【独家融合改进】| 模型轻量化二次改进:StarNet + FreqFusion,极限降参,适用专栏内所有轻量化模型

FreqFusion是一种旨在解决密集图像预测任务中特征融合问题。

Limiiiing的博客 2125

CommandLineRunner详解

在使用SpringBoot构建项目时,我们通常有一些预先数据的加载。那么SpringBoot提供了一个简单的方式来实现–CommandLineRunner。CommandLineRunner是一个接口,我们需要时,只需实现该接口就行。如果存在多个加载的数据,我们也可以使用@Order注解来排序。 案例: 分别定义了一个数据加载类MyStartupRunner1,排序为2;以及另一个数据加载类My

4万+

基于BERTopic模型的英文20新闻数据集主题聚类及可视化

BERTopic是基于深度学习的一种主题建模方法。BERT是一种用于NLP的预训练策略,它成功地利用了句子的深层语义信息。

Cachel Wood的博客 1461

掌握ApplicationRunner和CommandLineRunner如何使用及实现原理

ApplicationRunner 和 CommandLineRunner 是 Spring Boot 提供的两个接口,允许在 Spring 应用程序启动完成后执行特定的代码。它们的主要作用是在应用启动后执行一段初始化或任务逻辑,常见于一些启动任务,例如加载数据、验证配置、执行调度等。接下来我们就来详细看看它们在项目开发中的实际应用CommandLineRunner 和 ApplicationRunner 常用于应用启动后的初始化任务或一次性任务执行。

2401_87705318的博客 761

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Spring Boot 中初始化资源的方式

简单的一个需求,要求在项目启动过程中,完成线程池的初始化,加载初始化加载缓存等功能,你会怎么做?如果没想好答案,请接着往下看。今天介绍几种在Spring Boot中进行资源初始化的方式,帮助大家解决和回答这个问题 一:CommandLineRunner 定义初始化类 MyCommandLineRunner 实现 CommandLineRunner 接口,并实现它的 run() 方法,在该方法中...

悟能的师兄的专栏 949

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2020-11-29springboot启动分析

一、springboot启动创建SpringApplication对象 1、启动SpringApplication,调用构造方法创建SpringApplication对象。 public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) { return (new SpringApplication(primarySources)).run(args);

TMHJHZTMGB的博客 223

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[个人总结]-java常用方法

user.dir是一个系统属性,表示用户当前的工作目录,大多数情况下,用户的当前工作目录就是java项目的根目录(src文件的同级路径)cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。cmd /k dir 是执行完dir命令后不关闭命令窗口。cmd /c dir 是执行完dir命令后关闭命令窗口。// 获取命令输出结果。// 等待命令执行完成。// 调用CMD命令。

weixin_45210565的博客 1335

深入理解 Spring Boot 的 CommandLineRunner 原理及使用

run方法:该方法在应用程序启动后被调用。:命令行参数数组。:允许抛出任何异常。是 Spring Boot 提供的一个非常有用的接口,可以帮助你在应用程序启动后执行初始化任务。通过实现run方法,你可以轻松地执行各种初始化操作,并且可以通过命令行参数传递必要的配置信息。本文通过多个示例详细介绍了如何在实际项目中使用,希望对你有所帮助。

weixin_43841461的博客 4398

Springboot ApplicationRunner 详解

在项目中写了一个ApplicationRunner 来启动消费队列线程,结果启动的时候applicationRunner的run方法死活不被调用。通过debug发现,在springboot初始化完环境refresh context之后就会调用started listener然后调用application runner,如果started listner 存在阻塞的话就会导致后续的application runner 不被运行。......

yh4494的博客 1万+

Java笔记-对SpringBoot中CommandLineRunner的使用笔记

从中可以看到,这个是SpringBoot中的一个接口,他是在Spring环境都建起了后,一个一个的调用,都是在主线程中调用,如下: 事例代码如下: DisposeOne.java @Component public class DisposeOne implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.p..

IT1995的博客 2504

SpringBoot中CommandLineRunner详解(含源码)

Spring Boot的CommandLineRunner接口是一个函数式接口,用于在Spring Boot应用程序启动后执行一些初始化操作。它提供了一个run方法,该方法在应用程序启动后被调用。使用CommandLineRunner接口,可以在应用程序启动后执行一些必要的初始化操作,例如加载配置文件、初始化数据库连接、创建默认数据等。可以通过实现CommandLineRunner接口,并重写run方法来定义自己的初始化逻辑。

Venus's Blog 1万+

解析Spring Boot中的CommandLineRunner和ApplicationRunner:用法、区别和适用场景详解

在Spring Boot应用程序中,CommandLineRunner和ApplicationRunner是两个重要的接口,它们允许我们在应用程序启动后执行一些初始化任务。本文将介绍CommandLineRunner和ApplicationRunner的区别,并提供代码示例和使用场景,让我们更好地理解和使用这两个接口。

Apple_Boy的博客 4636

CommandLineRunner详细教程

CommandLineRunner是Spring Boot框架提供的一个功能接口,用于在Spring Boot应用启动完成后立即执行特定的代码逻辑。它允许开发者在应用程序完全启动并准备好接收请求之前执行一些初始化任务。 1.2 为什么需要CommandLineRunner? 在实际开发中,我们经常需要在应用启动后执行一些初始化工作: 1.3 CommandLineRunner的特点 1.3.1 执行时机 1.3.2 与ApplicationRunner的区别 2. 环境搭建和项目结构 2.1 Mave

yk_dflkg的博客 1433

CommandLineRunner接口介绍

文章目录CommandLineRunner接口介绍1. CommandLineRunner接口使用2. ApplicationRunner与CommandLineRunner3. ApplicationArguments 源码分析 CommandLineRunner接口介绍   CommandLineRunner接口是在容器启动成功后的最后一步回调(类似开机自启动)。 1. CommandLine...

Chavaer 5508

CommandLineRunner和ApplicationRunner作用及区别——SpringBoot

一、需求与前言 springBoot框架项目,有时候有预加载数据到或缓存中或类的属性中的需求,希望执行操作的时间是在容器启动末尾时执行操作。针对这种场景,SpringBoot提供了两个接口,分别是CommandLineRunner和ApplicationRunner。两个接口都在spring-boot的jar包中(spring-boot的jar包依附关系:spring-boot<-spring-boot-starter<-spring-boot-starter-web),项目只需要依赖spri

DayDayUp的博客 1万+

ApplicationRunner学习

1. 类型:接口 2. 方法:只定义了一个run方法 3. 使用场景: springBoot项目启动时,若想在启动之后直接执行某一段代码,就可以用 ApplicationRunner这个接口,并实现接口里面的run(ApplicationArguments args)方法,方法中写上自己的想要的代码逻辑。 !!!一定要加上@Component @Component public class ServerRunner implements ApplicationRunner { private

PhilsphyPrgram的博客 919
上一篇: spring boot2 (28)-cache缓存
下一篇: spring boot2 (30)-Jackson和ObjectMapper
free_java
博客等级 码龄10年 664粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值