SpringBoot:SpringBoot项目启动后立即执行函数的两种方式

前言

有时启动SpringBoot项目后需要自运行函数来满足一些项目需求,下面介绍三种方式以此实现。

一、定义实体类实现ApplicationRunner接口

@Component
public class Demo implements ApplicationRunner{

       @Override
       public void run(ApplicationArguments args) throws Exception{
            Systom.out.println("测试");
       }
}

二、定义实体类实现CommandLineRunner接口

@Component
public class Demo implements CommandLineRunner{

       @Override
       public void run(String... args) throws Exception{
            Systom.out.println("测试");
       }
}

底层实现逻辑

SpringApplication的run方法执行时会运行afterRefresh方法

afterRefresh方法内部会执行callRunners方法

callRunners会检索实现ApplicationRunner、CommandLineRunner 接口的类,并调用重写方法。

SpringBoot:SpringBoot项目启动后立即执行函数的两种方式

Original: https://www.cnblogs.com/nhdlb/p/15917897.html
Author: 怒吼的萝卜
Title: SpringBoot:SpringBoot项目启动后立即执行函数的两种方式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/540999/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 回文字符串_125_680

    题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写,和空格影响。 说明:本题中,我们将空字符串定义为有效的回文串。 题目描述: 给定一个非空…

    Java 2023年6月5日
    090
  • Jstack排查线上CPU100%

    Jstack排查线上CPU100% 介绍 jstack是JVM自带的Java堆栈跟踪工具,用于生成java虚拟机当前时刻的线程快照,来帮助定位线程出现长时间停顿的原因,例如死锁、死…

    Java 2023年6月15日
    069
  • dubbo面试题目

    1.为什么要用 Dubbo? 随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服…

    Java 2023年5月29日
    082
  • SSM项目的登录功能controller层的实现

    1.需求分析 用户在登录页面,输入用户名和密码,点击”登录”按钮或者回车,完成用户登录的功能. 用户名和密码不能为空 用户名或者密码错误 , 用户已过期 ,…

    Java 2023年6月9日
    070
  • Spring boot 处理 error 的套路

    Spring boot 处理 error 的基本流程: Controller -> 发生错误 -> BasicErrorController -> 根据 @Req…

    Java 2023年5月30日
    062
  • 设计模式之组合模式

    组合模式又叫合成(部分-整体)模式,属于结构型模式。组合模式将对象组织到树结构中,可以用来描述整体与部分的关系,可以使客户端将单纯元素与复合元素同等看待。 树结构在过程性的编程语言…

    Java 2023年6月5日
    065
  • java–面向对象基础

    类的定义 面向过程 :是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的面向对象 :是一种以对象为中心的编程思想,通过指挥对象实现具体的功能 类的理解 类是对现实生活中…

    Java 2023年6月15日
    076
  • Oracle的常用命令和表空间

    新手上手还原备份库基本命令 删除用户和表空间 ## 删除用户 drop user userName cascade; ## 如果用户无法删除,并报错: ## ERROR at li…

    Java 2023年6月7日
    079
  • java stream 简单函数

    写在前面本文为笔者学习的一些心得,如有问题,评论请轻喷本文分为以下部分:中间操作终止操作归纳 中间操作 对 list 进行操作,返回一个新的 list 主要函数 作用 过滤操作 截…

    Java 2023年6月5日
    086
  • Hyper-V无法启动虚拟机因为虚拟机监控程序未运行

    Hyper-v无法启动虚拟机,因为虚拟机管理程序未运行 解决问题的大致思路 在任务管理器中查看cpu虚拟化是否开启虚拟化。 如果没有开启 重新启动电脑进入bios中找到Intel …

    Java 2023年5月30日
    0316
  • Java代码实现文件添加数字签名、验证数字签名

    Linux下实现加签、验签 1.使用OpenSSL 生成公钥和密钥; #用 OpenSSL, Linux 上自带,常用命令如下: #生成 RSA 私钥(传统格式的) openssl…

    Java 2023年5月29日
    0155
  • mac 文本处理命令分享

    2 awk awk ‘{pattern + action}’ {filenames} awk是在每行处理文本的时候,默认按照空格隔离每一个域,对每一个域做处理。也可以直接通过在aw…

    Java 2023年6月7日
    081
  • spring 读取yaml配置文件

    从Spring框架4.1.0增加了对YAML的支持,Spring框架4.1.0 maven POM具有Snakeyaml依赖性 。 您可以在Spring Boot应用中使用两种方式…

    Java 2023年5月30日
    064
  • 集成 Redis & 异步任务 SpringBoot 2.7 .2实战基础

    SpringBoot 2.7 .2实战基础 – 09 – 集成 Redis & 异步任务 1 集成Redis 《docker 安装 MySQL 和 …

    Java 2023年6月16日
    066
  • 同步IO, 异步IO的理解

    什么是IO? 在计算机中无时无刻不存在着对数据的访问和读取(数据都存储在物理的媒介上,例如寄存器,高速缓存,内存,磁盘,网卡等等),这些操作被称为IO。 阻塞IO 当用户线程发起I…

    Java 2023年6月6日
    097
  • [转帖]Nginx(九)nginx的favico.ico

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年5月30日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球