Springboot的日常操作技巧

news/2025/3/14 18:13:28/

文章目录

      • 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/news/1434634.html

相关文章

vue封装请求、合并js、合并多个js

vue封装请求、合并js、合并多个js 作为一个后端开发,写前端时发现,每次导入api接口都会有一堆代码,像下面这样: import {footprintList, footprintDelete} from /api/userApi.js import {addressList} from /api/userApi.js impor…

【软件工程与实践】(第四版)第6章习题答案详解

第6章 一、填空题二、选择题三、简答题四、实践题 一、填空题 (1) 编程语言是人与计算机交流的 工具。 (2) 从语言层次上,编程语言可以分为 低级语言 和 高级语言 两种类型。 (3) 1960年代出现…

设计模式-创建型-抽象工厂模式-Abstract Factory

UML类图 工厂接口类 public interface ProductFactory {Phone phoneProduct();//生产手机Router routerProduct();//生产路由器 } 小米工厂实现类 public class XiaomiFactoryImpl implements ProductFactory {Overridepublic Phone phoneProduct() {return new XiaomiPhone…

聊聊linux的文件缓存

序 本文主要研究一下linux的文件缓存 文件缓存 linux使用page cache来缓存最近读取的文件,也有目录结构(dcache: Directory Entry Cache)缓存及inode缓存,它们都使用了LRU算法来管理这些page及dentries cache vmstat ## vmstat procs -----------me…

【Python打包exe文件】

Python打包exe文件 ■ Python打包exe文件■■■ ■ Python打包exe文件 需求: 自己写的Python代码,在对方电脑里没有安装py环境无法运行,怎么办? 答:打包成exe文件发送对方就能运行。 首先自己写的python代码自己要能…

JetBrains PhpStorm v2024.1 安装教程 (PHP集成开发IDE)

前言 PhpStorm是由JetBrains推出的一款轻量级集成开发环境,专为PHP开发者而设计。该软件融合了智能的HTML/CSS/JavaScript/PHP编辑器、代码质量分析工具、版本控制系统集成(包括SVN和GIT)、调试和测试等功能。除此之外,PhpStorm还…

第二期书生浦语大模型训练营第四次笔记

大模型微调技术 大模型微调是一种通过在预训练模型的基础上,有针对性地微调部分参数以适应特定任务需求的方法。 微调预训练模型的方法 微调所有层:将预训练模型的所有层都参与微调,以适应新的任务。 微调顶层:只微调预训练模型…

基于百度文心大模型全面重构,小度正式推出AI原生操作系统DuerOS X

4月16日,以“创造未来”为主题的2024百度Create AI开发者大会在深圳举办。百度集团副总裁、小度科技CEO李莹正式发布了小度新一代操作系统DuerOS X,该操作系统是小度基于百度文心大模型推出的全球首个AI原生操作系统。李莹表示:“作为⽂⼼⼤模…