玩转springboot之xxxRunner接口使用

Runner使用

如果需要在SpringApplication启动后执行一些逻辑,可以使用ApplicationRunner或CommandLineRunner接口,这两个接口都是只有一个run方法

public interface ApplicationRunner {void run(ApplicationArguments args) throws Exception;}
public interface CommandLineRunner {void run(String... args) throws Exception;}

实现

@Component
public class CodeReview implements ApplicationRunner {@Overridepublic void run(ApplicationArguments args) throws Exception {// 业务逻辑}

执行位置

该实现类是在SpringApplication.run方法最后进行执行的

afterRefresh(context, applicationArguments);protected void afterRefresh(ConfigurableApplicationContext context,ApplicationArguments args) {callRunners(context, args);}private void callRunners(ApplicationContext context, ApplicationArguments args) {List<Object> runners = new ArrayList<Object>();runners.addAll(context.getBeansOfType(ApplicationRunner.class).values());runners.addAll(context.getBeansOfType(CommandLineRunner.class).values());AnnotationAwareOrderComparator.sort(runners);for (Object runner : new LinkedHashSet<Object>(runners)) {if (runner instanceof ApplicationRunner) {callRunner((ApplicationRunner) runner, args);}if (runner instanceof CommandLineRunner) {callRunner((CommandLineRunner) runner, args);}}}

https://zhhll.icu/2022/框架/springboot/基础/16.Runner使用/

本文由mdnice多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/871645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为USG6000V防火墙v1

目录 一、实验拓扑图 二、要求 三、IP地址规划 四、实验配置 1&#x1f923;防火墙FW1web服务配置 2.网络配置 要求1&#xff1a;DMZ区内的服务器&#xff0c;办公区仅能在办公时间内(9:00-18:00)可以访问&#xff0c;生产区的设备全天可以访问 要求2&#xff1a;生产区不…

电影《头脑特工队2》观后感

上周看了电影《头脑特工队2》&#xff0c;整体是非常不错的&#xff0c;一个大脑中&#xff0c;想象的世界。 &#xff08;1&#xff09;人格-多元政体理论 记得前几年是看过《头脑特工队1》的&#xff0c;当时电影是非常出名的&#xff0c;当时有很多研究理论&#xff0c;都…

memcached 介绍与详解和关键代码

Memcached是一种分布式内存对象缓存系统&#xff0c;用于缓存数据库查询结果、API调用结果或任意计算结果。它的设计初衷是为了减轻数据库负载&#xff0c;提高应用程序性能。下面是对Memcached的介绍和详解&#xff0c;以及关键代码示例。 功能介绍&#xff1a; 以键值对形式…

【练习】分治--归并排序

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;算法(Java)&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 归并排序 代码实现 交易逆序对的总数 题目描述 ​编辑 题解 代码实…

JAVA从入门到精通之入门初阶(二)

1. 自动类型转换 自动类型转换&#xff1a;类型范围小的变量可以赋值给类型范围大的变量 byte->int public class java_7_10 {public static void main(String[] args) {//自动类型转换//类型范围小的变量可以赋值给类型范围大的变量 byte->intbyte a 12;int b a;//自动…

9个最适合使用的Java分析器

Java分析器工具可以明显的提高问题定位、分析、处理的效率&#xff0c;下面会给大家简单的介绍几款日常工作过程中使用到的Java分析器。 0.什么是 Java 分析器&#xff1f; Java 分析器是一种用于测量和检查 Java 应用程序性能的工具。它收集程序执行数据&#xff0c;包括每个…

C语言 ——— 输入两个正整数,求出最小公倍数

目录 何为最小公倍数 题目要求 代码实现 方法一&#xff1a;暴力求解法&#xff08;不推荐&#xff09; 方法二&#xff1a;递乘试摸法&#xff08;推荐&#xff09; 何为最小公倍数 最小公倍数是指两个或者多个正整数&#xff08;除了0以外&#xff09;的最小的公共倍数…

代码随想录算法训练营第38天

LeetCode 322. 零钱兑换 链接 class Solution { public:int coinChange(vector<int>& coins, int amount) {if(amount 0) {return 0;}vector<int> dp(amount 1, 0);for(auto i : coins) {if(i < amount) {dp[i] 1;}}for(int i 0; i < coins.size()…

在 Android 中定义和使用自定义属性

1. 定义自定义属性 首先&#xff0c;我们需要在 res/values/attrs.xml 文件中定义自定义属性。这些属性可以是颜色、尺寸、字符串等。 创建或打开 res/values/attrs.xml 文件&#xff0c;并添加以下内容&#xff1a; <?xml version"1.0" encoding"utf-8&…

【LeetCode】205. 同构字符串

认真地分类讨论&#xff0c;评判复杂度&#xff0c;再决定是否要写代码执行。整套流程干净利落&#xff0c;不存在主观臆想&#xff0c;也不会有对事实结果计算的巨大偏差。 1. 题目 2. 分析 这里提供一版可以解题的思路。 定义两个词典&#xff0c;这两个词典分别记录s字符串…

DHC2-2多时段电子式时间继电器 带底座 约瑟JOSEF

DHC2多时段电子式时间继电器 DHC2-H多时段电子式时间继电器 DHC2-1多时段电子式时间继电器 DHC2-2多时段电子式时间继电器 DHC2-3多时段电子式时间继电器 一、特点 超小型面板尺寸DIN 36X36mm(DHC1)、DIN 48X48m(DHC2) 有延时吸合、延时释放、等周期循环三种规格 可替代…

kibana连接elasticsearch(版本8.11.3)

前言 elasticsearch在8版本之后就出现了很大变化&#xff0c;由于kibana版本需要需elasticsearch进行版本对象&#xff0c;kibana连接方式也出现了很大变化。我在这里记录下自己的踩坑记录。 服务部署 本文中的服务都是在docker环境中部署的。其中elasticsearch版本和kibana版…

5G-A通感融合赋能低空经济-RedCap芯片在无人机中的应用

1. 引言 随着低空经济的迅速崛起&#xff0c;无人机在物流、巡检、农业等多个领域的应用日益广泛。低空飞行器的高效、安全通信成为制约低空经济发展的关键技术瓶颈。5G-A通感一体化技术通过整合通信与感知功能&#xff0c;为低空网络提供了强大的技术支持。本文探讨了5G-A通感…

OpenCV 寻找棋盘格角点及绘制

目录 一、概念 二、代码 2.1实现步骤 2.2完整代码 三、实现效果 一、概念 寻找棋盘格角点&#xff08;Checkerboard Corners&#xff09;是计算机视觉中相机标定&#xff08;Camera Calibration&#xff09;过程的重要步骤。 OpenCV 提供了函数 cv2.findChessboardCorners…

Spring Boot中的 6 种API请求参数读取方式

使用Spring Boot开发API的时候&#xff0c;读取请求参数是服务端编码中最基本的一项操作&#xff0c;Spring Boot中也提供了多种机制来满足不同的API设计要求。 接下来&#xff0c;就通过本文&#xff0c;为大家总结6种常用的请求参数读取方式。如果你发现自己知道的不到6种&a…

什么? CSS 将支持 if() 函数了?

CSS Working Group 简称 CSSWG, 在近期的会议中决定将 if() 添加到 CSS Values Module Level 5 中。 详情可见&#xff1a;css-meeting-bot 、[css-values] if() function 当我看到这个消息的时候&#xff0c;心中直呼这很逆天了&#xff0c;我们知道像 less 这些 css 这些预…

常用的linuxmmc命令,用于管理和操作MMC卡。

MMC (MultiMediaCard) 是一种用于存储和传输数据的存储卡格式。Linux操作系统提供了一些命令来管理MMC卡。以下是一些常用的linuxmmc命令&#xff1a; 1. mmcblk0&#xff1a;这是MMC设备的主块设备。在Linux中&#xff0c;MMC设备通常以mmcblk0的形式表示。可以使用命令”lsb…

用Speedtest-Tracker跟踪上网速度(续)

什么是 Speedtest Tracker ? Speedtest Tracker 是一款自托管互联网性能跟踪应用程序&#xff0c;可针对 Ookla 的 Speedtest 服务运行速度测试检查。 之前老苏介绍的另一个 https://github.com/henrywhitaker3/Speedtest-Tracker 已被放弃。现在这个是积极维护的替代品&#…

STM32编写代码之嵌入式常用位操作

在单片机编程的过程中&#xff0c;经常会遇到位操作进行赋值&#xff0c;例如 //程序1 int a 0,b 0x5b,c 0; //1 for (i 0; i < 8; i ) { //2a b & (0x80 >> i)); //3 c | (0x80 >> i); //4 } 这些位操作是什么意思呢&#xff1f…

GuLi商城-商品服务-API-品牌管理-JSR303自定义校验注解

自定义注解规则: 可以参考@NotNull注解 package com.nanjing.common.valid;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target;i…