SpringBoot进阶 CommandLineRunner 初始化配置
在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 初始化配置的更多相关文章
- SpringBoot进阶教程 | 第四篇:整合Mybatis实现多数据源
这篇文章主要介绍,通过Spring Boot整合Mybatis后如何实现在一个工程中实现多数据源.同时可实现读写分离. 准备工作 环境: windows jdk 8 maven 3.0 IDEA 创建 ...
- SpringBoot的外部化配置最全解析!
目录 SpringBoot中的配置解析[Externalized Configuration] 本篇要点 一.SpringBoot官方文档对于外部化配置的介绍及作用顺序 二.各种外部化配置举例 1.随 ...
- SpringBoot进阶教程(六十四)注解大全
在Spring1.x时代,还没出现注解,需要大量xml配置文件并在内部编写大量bean标签.Java5推出新特性annotation,为spring的更新奠定了基础.从Spring 2.X开始spri ...
- SpringBoot进阶教程(二十九)整合Redis 发布订阅
SUBSCRIBE, UNSUBSCRIBE 和 PUBLISH 实现了 发布/订阅消息范例,发送者 (publishers) 不用编程就可以向特定的接受者发送消息 (subscribers). Ra ...
- springboot情操陶冶-web配置(九)
承接前文springboot情操陶冶-web配置(八),本文在前文的基础上深入了解下WebSecurity类的运作逻辑 WebSecurityConfigurerAdapter 在剖析WebSecur ...
- springboot情操陶冶-web配置(二)
承接前文springboot情操陶冶-web配置(一),在分析mvc的配置之前先了解下其默认的错误界面是如何显示的 404界面 springboot有个比较有趣的配置server.error.whit ...
- Springboot学习03-SpringMVC自动配置
Springboot学习03-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configur ...
- 003-spring cloud gateway-概述、Route模型、网关初始化配置过程、基本原理
一.概述 网关服务核心是将进入的请求正确合理的路由到下层具体的服务进行业务处理,由此可见网关服务的核心就是路由信息的构建. Spring Cloud Gateway旨在提供一种简单而有效的方式来路由到 ...
- SpringBoot整合Mybatis,TypeAliases配置失败的问题
SpringBoot整合Mybatis,TypeAliases配置失败的问题 问题描述 在应用MyBatis时,使用对象关系映射,将对象和Aliase映射起来. 在Mybatis的文档明确写出,如果你 ...
- SpringBoot进阶教程(五十九)整合Codis
上一篇博文<详解Codis安装与部署>中,详细介绍了codis的安装与部署,这篇文章主要介绍介绍springboot整合codis.如果之前看过<SpringBoot进阶教程(五十二 ...
随机推荐
- ISIS 综合实验;BGP 实验
目录 ISIS 综合实验 实验拓扑 实验需求 实验步骤 1.配置相应接口IP地址及环回口地址 2.配置 IS-IS,要求全网互通,R8的Loop X口暂不宣告 3. R1和R3直连,要求 R3 成为 ...
- EndNote参考文献格式Output Styles界面介绍
本文对EndNote软件修改论文参考文献引用格式的界面与各选项参数加以详细介绍. 利用EndNote软件进行论文参考文献的插入可以说是非常方便:但其亦具有一个问题,就是对中文文献的支持不太友好 ...
- Spring Boot异步请求处理框架
Spring Boot异步请求处理框架 1.前言 在Spring Boot项目中,经常会遇到处理时间过长,导致出现HTTP请求超时问题,状态码:502. 例如一个文件导入接口需要导入一个Exc ...
- Linux 线程传递参数
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <pthread.h> 4 #include <u ...
- 前端学习C语言 - 数组和字节序
数组 本篇主要介绍:一维二维数组.字符数组.数组名和初始化注意点以及字节序. 一维数组 初始化 有以下几种方式对数组初始化: // 定义一个有5个元素的数组,未初始化 int a[5]; // 定义一 ...
- 逍遥自在学C语言 | 指针的基础用法
前言 在C语言中,指针是一项重要的概念,它允许我们直接访问和操作内存地址. 可以说,指针是C语言一大优势.用得好,你写程序如同赵子龙百万军中取上将首级:用得不好,则各种问题层出不穷,有种双拳难敌四手的 ...
- HTTP请求:requests的进阶使用方法浅析
1 背景 上篇文章讲解了requests模块的基础使用,其中有get.put.post等多种请求方式,使用data.json等格式做为请求参数,在请求体中添加请求头部信息的常见信息,如:headers ...
- 【QCustomPlot】使用方法(源码方式)
说明 使用 QCustomPlot 绘图库辅助开发时整理的学习笔记.同系列文章目录可见 <绘图库 QCustomPlot 学习笔记>目录.本篇介绍 QCustomPlot 的一种使用方法, ...
- CF1817E Half-sum
题意 有一个大小为 \(N\) 的非负整数集合 \(A\),每次你可以从集合中取任意两个数,并将它们的平均数放回序列.不停操作,知道集合最后剩下两个数.请求出这两个数的差的绝对值的最大值对 \(10^ ...
- BeEF记录
前情提要 最近项目上常规手段遇阻,计划进行水坑钓鱼,一番搜索找到近期SolarMarker组织的手法,但是没有找到相关样本,于是就自己实现了一个类似的前端功能(水坑手法项目会持续记录学习,但目前不会放 ...