Springboot的日常操作技巧

embedded/2024/9/23 12:29:05/

文章目录

      • 1、自定义横幅
      • 2、容器刷新后触发方法自定义
      • 3、容器启动后触发方法自定义
          • **CommandLineRunner**
          • ApplicationRunner
      • 不定时增加
  • 参考文章


1、自定义横幅

在这里插入图片描述

简单就一点你需要把banner.text放到classpath 路径下 ,默认它会找叫做banner的文件,各种格式的都可以 ,但是实际只能输出成符号图形 图片也行但是显示的结果就和下图一样
在这里插入图片描述
也可以使用代码

java">@SpringBootApplication
public class GatewayTestApplication {public static void main(String[] args) {SpringApplication springApplication = new SpringApplication(GatewayTestApplication.class);springApplication.setBanner((environment, sourceClass, out)->{out.println("***************************");out.println("* 啦啦啦啦    *");out.println("***************************");});springApplication.run(args);}}

优先输出自定义横幅

  1. 先检查是否有横幅图片文件,.jpg.phg这样的
  2. 在检查banner.text文件
  3. 最后检查代码配置的文件

根据顺序优先只显示一个,后面的不会在显示

2、容器刷新后触发方法自定义

java">public class MyApplicationContextInitializer implements ApplicationContextInitializer {@Overridepublic void initialize(ConfigurableApplicationContext applicationContext) {// 在容器刷新完成后执行的操作System.out.println("在容器刷新完成后执行的操作");// 可以在这里添加任何你需要的初始化逻String[] beanDefinitionNames = applicationContext.getBeanFactory().getBeanDefinitionNames();System.out.println(Arrays.toString(beanDefinitionNames));}
}

在这里插入图片描述

3、容器启动后触发方法自定义

结果示例
在这里插入图片描述

Spring启动容器好会调用callRunners(context, applicationArguments); 方法
这个方法扫描了实现 这两个接口的类

java">		runners.addAll(context.getBeansOfType(ApplicationRunner.class).values());runners.addAll(context.getBeansOfType(CommandLineRunner.class).values());
CommandLineRunner

第一步 定义方法,

java">/*** 容器启动后方法** @author zhangyf* @date 2024/3/27 16:15*/@Component
public class MyApplicationContextRunner implements CommandLineRunner {@Overridepublic void run(String... args) throws Exception {System.out.println("测试测试,实现CommandLineRunner完成应用启动好方法。。。。。滴滴滴 ");}
}

第二步 不要忘记注解
主类上也要加入注解 (扫描配置)

java">@ComponentScan(basePackages = "com.gateway.demo.customizable")
ApplicationRunner

和上面基本一样

java">/*** 容器启动后方法** @author zhangyf* @date 2024/3/28 15:20*/
@Component
public class MyApplicationContextRunnerA implements ApplicationRunner {@Overridepublic void run(ApplicationArguments args) throws Exception {System.out.println("测试测试,实现ApplicationRunner完成应用启动好方法。。。。。滴滴滴 ");}
}

重点
ApplicationRunner和CommandLineRunner的区别我这里只说明你需要使用触发方法时的区别

主要就是参数,应该参数是String 传入的是命令行,另一个是ApplicationArguments对象

根据具体需求,如果任务与命令行参数相关,就使用 CommandLineRunner
如果你需要更多的参数信息或者需要执行更通用的任务,就使用 ApplicationRunner 接口。在实践中,两者可以根据需求结合使用。

不定时增加

参考文章

个人笔记,不同意见,望有交流
直接可以点击跳转连接

GPT3.5 感谢全网作者


http://www.ppmy.cn/embedded/13695.html

相关文章

最短路问题之Dijkstra算法 洛谷 单源最短路径

Dijkstra算法具体解释 Dijkstra算法用于解决单源最短路径问题,即找出从一个源节点到其他所有节点的最短路径。该算法的前提是图中不能有负权边,因为它基于贪心策略。Dijkstra算法的基本思想是通过逐步确定到达每个节点的最短路径长度来求解问题。其主要…

configure: error: library ‘crypto‘ is required for OpenSSL

1、执行命令./configure --prefix/usr/local/pgsql/postgresql-14.2 --with-openssl 报错configure: error: library crypto is required for OpenSSL 2、解决办法 yum install openssl openssl-devel

windows下如何安装git

在FreeBSD和Linux下习惯了pkg install 和apt install之后,windows下怎么安装git反而不会了。尤其是在github抽风的时候,不知道该到哪里去下载。在“Microsoft Store”里也没有找到,确切的说查找git后,显示出来的都是vscode、Visua…

Python也可以合并和拆分PDF,批量高效!

PDF是最方便的文档格式,可以在任何设备原样且无损的打开,但因为PDF不可编辑,所以很难去拆分合并。 知乎上也有人问,如何对PDF进行合并和拆分? 看很多回答推荐了各种PDF编辑器或者网站,确实方法比较多。 …

OpenCompass 大模型评测实战——笔记

OpenCompass 大模型评测实战——笔记 一、评测1.1、为什么要做评测1.2、如何通过能力评测促进模型发展1.2.1、面向未来拓展能力维度1.2.2、扎根通用能力1.2.3、高质量1.2.4、性能评测 1.3、评测的挑战1.3.1、全面性1.3.2、评测成本1.3.3、数据污染1.3.4、鲁棒性 二、OpenCompas…

EasyExcel导出图片并实现动态表头、自动合并单元格、给指定单元格设置值

概要描述 最近工作中涉及到使用Excel导出图片的需求,下面对使用Excel导出图片遇到的一些问题进行记录说明。需求通过 EasyExcel中提供的转换器(Converter)和拦截器(Handler)实现。EasyExcel 官网地址 实现效果 实现过程 EasyExcel 支持导出 ByteArray、File、String、In…

C++从入门到出门

C 概述 c 融合了3中不同的编程方式: C语言代表的过程性语言C 在C语言基础上添加的类代表的面向对象语言C 模板支持的泛型编程 1、在c语言中头文件使用扩展名.h,将其作为一种通过名称标识文件类型的简单方式。但是c得用法改变了,c头文件没有扩展名。但是…

Rootkit介绍

一、定义 Rootkit是一种恶意软件,旨在让黑客访问和控制目标设备。虽然大多数Rootkit 会影响软件和操作系统,但有些还会感染计算机的硬件和固件。Rootkit善于隐藏自己,担当它们保持隐藏时,其实处于活跃状态。 一旦未经授权获得对计…