在Spring Boot中,CommandLineRunner接口用于在应用程序启动后执行一些特定的命令行操作。通过实现CommandLineRunner接口,您可以在Spring Boot应用程序运行时执行一些自定义的初始化操作,比如读取配置文件、执行特定任务等。

要使用CommandLineRunner接口,您需要创建一个实现该接口的类,并实现其run()方法。在run()方法中,您可以编写要在应用程序启动时执行的命令行操作。以下是一个简单的示例:

 1 package com.jzt.zhcai.beacon.config;
2
3 import cn.hutool.core.collection.CollectionUtil;import org.apache.commons.lang.exception.ExceptionUtils;import org.springframework.boot.CommandLineRunner;
4 import org.springframework.stereotype.Component;
5 import org.springframework.util.CollectionUtils;
6
7 import javax.annotation.Resource;
8 import java.lang.reflect.Field;
9 import java.util.*;
10 import java.util.concurrent.TimeUnit;
11
12
13 @Component
14 @Slf4j
15 public class MyCommandLineRunner implements CommandLineRunner {
16
17 @Resource
18 XxxMapper xxxMapper;
19
20 @Override
21 public void run(String... args) throws Exception {
22 initializeDtConfig();
23 }
24
25 public void initializeDtConfig() throws Exception {
26 initVisitPurpose();
27 initCustomerConfig();
28 }
29
30 private void initVisitPurpose() {
31 // do something
32 }
33
34 private void initCustomerConfig() {
35 // do something
36 }
37 }

在上面的示例中,我们创建了一个名为MyCommandLineRunner的类,并实现了CommandLineRunner接口的run()方法。在run()方法中,我们编写了一个简单的逻辑,打印出"CommandLineRunner已执行!"的消息。然后,我们使用@Component注解将该类标记为一个Spring组件,以便Spring容器能够在应用程序启动时自动实例化该类并调用其run()方法。

要执行该CommandLineRunner,您需要在Spring Boot应用程序中将该类定义为一个bean,并将其添加到CommandLineRunner列表中。以下是一个示例配置:

 1 import org.springframework.context.annotation.Bean;
2 import org.springframework.context.annotation.Configuration;
3 import org.springframework.boot.CommandLineRunner;
4 import org.springframework.stereotype.Component;
5
6 @Configuration
7 public class MyAppConfig {
8
9 @Bean
10 public CommandLineRunner myCommandLineRunner() {
11 return new MyCommandLineRunner();
12 }
13 }

在上面的示例中,我们创建了一个名为MyAppConfig的配置类,并使用@Bean注解定义了一个名为myCommandLineRunner的方法。该方法返回一个MyCommandLineRunner的实例,并将其注册为一个Spring bean。然后,Spring容器将在应用程序启动时自动将该bean添加到CommandLineRunner列表中,以便在应用程序运行时执行相应的命令行操作。

通过使用CommandLineRunner接口和相应的配置,您可以方便地在Spring Boot应用程序启动时执行自定义的命令行操作。这对于需要在应用程序运行时进行一些特定操作的场景非常有用。

SpringBoot进阶 CommandLineRunner 初始化配置的更多相关文章

  1. SpringBoot进阶教程 | 第四篇:整合Mybatis实现多数据源

    这篇文章主要介绍,通过Spring Boot整合Mybatis后如何实现在一个工程中实现多数据源.同时可实现读写分离. 准备工作 环境: windows jdk 8 maven 3.0 IDEA 创建 ...

  2. SpringBoot的外部化配置最全解析!

    目录 SpringBoot中的配置解析[Externalized Configuration] 本篇要点 一.SpringBoot官方文档对于外部化配置的介绍及作用顺序 二.各种外部化配置举例 1.随 ...

  3. SpringBoot进阶教程(六十四)注解大全

    在Spring1.x时代,还没出现注解,需要大量xml配置文件并在内部编写大量bean标签.Java5推出新特性annotation,为spring的更新奠定了基础.从Spring 2.X开始spri ...

  4. SpringBoot进阶教程(二十九)整合Redis 发布订阅

    SUBSCRIBE, UNSUBSCRIBE 和 PUBLISH 实现了 发布/订阅消息范例,发送者 (publishers) 不用编程就可以向特定的接受者发送消息 (subscribers). Ra ...

  5. springboot情操陶冶-web配置(九)

    承接前文springboot情操陶冶-web配置(八),本文在前文的基础上深入了解下WebSecurity类的运作逻辑 WebSecurityConfigurerAdapter 在剖析WebSecur ...

  6. springboot情操陶冶-web配置(二)

    承接前文springboot情操陶冶-web配置(一),在分析mvc的配置之前先了解下其默认的错误界面是如何显示的 404界面 springboot有个比较有趣的配置server.error.whit ...

  7. Springboot学习03-SpringMVC自动配置

    Springboot学习03-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configur ...

  8. 003-spring cloud gateway-概述、Route模型、网关初始化配置过程、基本原理

    一.概述 网关服务核心是将进入的请求正确合理的路由到下层具体的服务进行业务处理,由此可见网关服务的核心就是路由信息的构建. Spring Cloud Gateway旨在提供一种简单而有效的方式来路由到 ...

  9. SpringBoot整合Mybatis,TypeAliases配置失败的问题

    SpringBoot整合Mybatis,TypeAliases配置失败的问题 问题描述 在应用MyBatis时,使用对象关系映射,将对象和Aliase映射起来. 在Mybatis的文档明确写出,如果你 ...

  10. SpringBoot进阶教程(五十九)整合Codis

    上一篇博文<详解Codis安装与部署>中,详细介绍了codis的安装与部署,这篇文章主要介绍介绍springboot整合codis.如果之前看过<SpringBoot进阶教程(五十二 ...

随机推荐

  1. 构建 JavaScript ChatGPT 插件

    聊天插件系统是一种令人兴奋的新方式,可以扩展ChatGPT的功能,纳入您自己的业务数据,并为客户与您的业务互动增加另一个渠道.在这篇文章中,我将解释什么是聊天插件,它们能做什么,以及你如何用JavaS ...

  2. 使用Kettle定时从数据库A刷新数据到数据库B

    一.需求背景 由于项目场景原因,需要将A库(MySQL)中的表a.表b.表c中的数据定时T+1 增量的同步到B库(MySQL).这里说明一下,不是数据库的主从备份,就是普通的数据同步.经过技术调研,发 ...

  3. 1.5 编写自定位ShellCode弹窗

    在笔者上一篇文章中简单的介绍了如何运用汇编语言编写一段弹窗代码,虽然简易ShellCode可以被正常执行,但却存在很多问题,由于采用了硬编址的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如 ...

  4. 探秘高逼格艺术二维码的制作过程-AI绘画图生图

    在之前的文章<AI制作艺术二维码-文生图>中,我介绍了一种直接通过提示词生成高逼格二维码的方法,但是通过提示词我们无法很好的控制生成图片的样式,特别是有些同学想要将自己的Logo或者头像附 ...

  5. IoTOS-v1.2.1接入J-IM(t-io)后台通知App

    IoTOS v1.2.1 一.登录页增加可修改轮播 登录页增加可修改数据轮播: 首页轮播图由背景图片.标题.介绍.按钮一.按钮二(可配置跳转地址打开方式)组合而成 二.登录页增加常用运营商平台& ...

  6. 多光源渲染方案 - Many Lights Sampling

    目录 Importance Sampling(IS) Light BVH [2018~2019] 预构建 BVH 重建 BVH 基于 BVH node 的 IS Real-time Stochasti ...

  7. Java IO流 - 字节流的使用详细介绍

    IO流的基本介绍: IO流的概述: i 表示intput,是数据从硬盘文件读入到内存的过程,称之输入,负责读. o 表示output,是内存程序的数据从内存到写出到硬盘文件的过程,称之输出,负责写. ...

  8. 推荐一款.NET开源的轻量级分布式服务框架

    前言 今天要给大家推荐一款由新生命开发团队开源的.NET轻量级分布式服务框架:星尘分布式平台(NewLife.Stardust). 项目介绍 星尘是一个轻量级分布式服务框架.它的功能包含配置中心.集群 ...

  9. ChatGPT的探索与实践-业务应用篇

    本篇文章主要介绍在实际的开发过程当中,如何使用GPT帮助开发,优化流程,恰逢今年京东20周年庆,文末会介绍如何与618大促实际的业务相结合,来提升应用价值.全是干货,且本文所有代码和脚本都是利用GPT ...

  10. C#选择排序(Selection Sort)算法

    选择排序原理介绍 选择排序(Selection Sort)是一种简单的排序算法,其实现原理如下: 遍历待排序数组,从第一个元素开始. 假设当前遍历的元素为最小值,将其索引保存为最小值索引(minInd ...