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进阶教程(五十二 ...
随机推荐
- STM32低功耗配置
一.相关介绍 1.1 STM32下的电源管理 电源框图 电源标号说明 电压调节器 复位后调节器总是使能.以3种不同的模式工作. 运转模式:调节器以正常功耗模式提供1.8V电源(内核,内存和外设). 停 ...
- Kafka 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? >幂等性,通俗点说,就一个数据,或者一个请求,给你重复来多次,你得确保对应的数据是不会改变的,不能出错. kafka 的机制: K ...
- Atcoder ABC244E - King Bombee 题解
原题: Atcoder ABC244E - King Bombee 题意 给你一张图,从 \(S\) 到 \(T\),经过 \(k\) 条边, 经过 \(X\) 号点偶数次的方案数. 做法 设 \(f ...
- 理解ASP.NET Core - 限流(Rate Limiting)
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 概述 在微服务化的架构设计中,网关扮演着重要的看门人角色,它所提供的功能之一就是限流.而对于众 ...
- PerfView专题 (第十四篇): 洞察那些 C# 代码中的短命线程
一:背景 1. 讲故事 这篇文章源自于分析一些疑难dump的思考而产生的灵感,在dump分析中经常要寻找的一个答案就是如何找到死亡线程的生前都做了一些什么?参考如下输出: 0:001> !t T ...
- BigCode 背后的大规模数据去重
目标受众 本文面向对大规模文档去重感兴趣,且对散列 (hashing) .图 (graph) 及文本处理有一定了解的读者. 动机 老话说得好: 垃圾进,垃圾出 (garbage in, garbage ...
- Linux下Oracle单实例配置多监听
Oracle单实例配置多监听 一.前言 有时候我们项目中需要使用Oracle数据库,同时要需要不同的数据源,而Oracle不像Mysql那样直接建个库即可,Oracle是以账号为单位,可以理解为一个账 ...
- c语言分析和循坏对应的汇编定义格式(Debug版本)
c语言if单分支结构所对应的汇编代码结构 #include "stdafx.h" int main(int argc, char* argv[]) { if(argc > 8 ...
- 可托拉拽的WPF选项卡控件,强大好用!
推荐一个简单易用的WPF选项卡控件. 项目简介 这是一个基于WPF开发的,可扩展.高度可定制.轻量级的UI组件,支持拖拉拽功能,可以让开发人员快速实现需要选项卡窗口的系统. 特色功能 1.拖拉拽标签: ...
- 【Oracle】 instr函数与substr函数以及自制分割函数
Oracle instr函数与substr函数以及自制分割函数 instr通常被用来作为判断某个字符串中是否含有执行字符串和将返回结果作为一些数据分割的数据,即有模糊查询like的作用,当返回的查询结 ...