【基础篇】SpringBoot 自定义 Banner
写在最前
我们在启动 Spring Boot 项目时会在控制台打印如下内容(logo 和版本信息):
. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v2.6.6)
动手替换
生成 Banner
通过如下链接可以生成自己项目想要的 ASCII 艺术字
- 定制化 ASCII 字符1
- 定制化 ASCII 字符2
- 定制化 ASCII 图片
如下生成 banner 字符
To My Love!-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-__ __ __ __.*. /~ .~\ /~ ~\ /~ .~\ /~ ~\*** ' `\/' * ' `\/' *V ( .*)( . *)
/\|/\ \ Ming . *./ \ Yue . *./| `\ . . .*/' `\ . . .*/' .*.| `\ * .*. */' _ _ `\ * .*. */' ***`\ * */' ( `\/'*) `\ * */' V`\/' \ */' `\/' /\|/\`\/' |--+++==##<<{{******** Ming Yue ********}}>>##==++--
替换 Banner
项目的 resources 资源目录下创建
banner.txt
文件。例如:把上面生成的banner
替换进去
再次启动项目,打印如上面 banner 字符即可。此时我们发现对应的 Spring Boot 的一些版本信息没有了,如果还想要,可以添加。
追加 Spring Boot 版本信息等
- ${spring-boot.version}:Spring Boot 版本号;
- ${spring-boot.formatted-version}:格式化后的 Spring Boot 版本号信息。
- ${application.version}:MANIFEST.MF 文件中的版本号;
- ${application.formatted-version}:格式化后的 MANIFEST.MF 文件中的版本号信息;
追加配置文件
application.properties
中定义的变量
app.author=Strive
最终文件如下,再次启动项目查看打印
To My Love!-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-__ __ __ __.*. /~ .~\ /~ ~\ /~ .~\ /~ ~\*** ' `\/' * ' `\/' *V ( .*)( . *)
/\|/\ \ Ming . *./ \ Yue . *./| `\ . . .*/' `\ . . .*/' .*.| `\ * .*. */' _ _ `\ * .*. */' ***`\ * */' ( `\/'*) `\ * */' V`\/' \ */' `\/' /\|/\`\/' |--+++==##<<{{******** Ming Yue ********}}>>##==++--
:: Spring Boot :: (${spring-boot.version})--by ${app.author}
打印如下:
To My Love!-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-__ __ __ __.*. /~ .~\ /~ ~\ /~ .~\ /~ ~\*** ' `\/' * ' `\/' *V ( .*)( . *)
/\|/\ \ Ming . *./ \ Yue . *./| `\ . . .*/' `\ . . .*/' .*.| `\ * .*. */' _ _ `\ * .*. */' ***`\ * */' ( `\/'*) `\ * */' V`\/' \ */' `\/' /\|/\`\/' |--+++==##<<{{******** Ming Yue ********}}>>##==++--
:: Spring Boot :: (2.6.6)--by Strive
实现原理
Banner
接口专门实现这个操作。要想自定义打印 banner ,只要自定义一个类实现这个接口,重写printBanner
方法进行打印即可。Springboot 项目启动时,会创建我们的实现类对象,并调用对象的printBanner
方法。
package org.springframework.boot;import java.io.PrintStream;
import org.springframework.core.env.Environment;@FunctionalInterface
public interface Banner {void printBanner(Environment environment, Class<?> sourceClass, PrintStream out);public static enum Mode {OFF, // 关闭 banner 打印CONSOLE, // 打印 banner 到 控制台LOG; // 打印 banner 到日志文件private Mode() {}}
}
printBanner
默认有三个实现:
- ImageBanner:加载和打印图片 banner;
- ResourceBanner:加载和打印字符 banner;
- SpringBootBanner:默认情况下,会使用 SpringBootBanner 实现类打印 banner;
【基础篇】SpringBoot 自定义 Banner相关推荐
- IDEA SpringBoot 自定义Banner
IDEA SpringBoot 自定义Banner 首先在IDEA项目中创建banner.txt文件 然后浏览器搜索SpringBoot Banner在线生成工具 选择一个自己喜欢的banner 例如 ...
- SpringBoot自定义banner,如何定制炫酷的banner提升项目B格?
文章目录 写在前面 自定义banner 使用banner.txt文件 使用图片 手写一个banner banner参数 在 application.properties 文件中可以配置banner其他 ...
- SpringBoot自定义banner小彩蛋
我们在启动 SpringBoot 时,控制台会打印 SpringBoot Logo 以及版本信息:这个操作是可以通过 SpringBoot的banner自定义实现 . ____ _ __ _ _/\\ ...
- 彩蛋!springboot自定义banner
1.搜索banner,寻找喜欢的图 百度搜索springboot banner在线生成,或者点下面链接直接进入: 链接:Spring Boot自定义启动Banner在线生成工具 2.在resource ...
- SpringBoot 自定义Banner
1.进入http://patorjk.com/software/taag 输入 toto 2.查看Banner中的内容
- 元旦加班写SpringBoot自定义注解
写在前面 这个点我们公司的人走的已经差不多了,原因很简单呀,明天元旦嘛,放假前可是不加班的,很nice,实习生的我,今天给大家分享一篇springboot自定义注解的技术文章. 很牛逼的注解 开发过程 ...
- 玩转 SpringBoot 2.x 之自定义 Banner 日志输出原理篇
1 查看 SpringBoot 官方文档 https://docs.spring.io/spring-boot/docs/2.0.6.RELEASE/reference/htmlsingle/#boo ...
- 黑马SpringBoot --基础篇
目录 导读 1.快速上手 1.1SpringBoot入门程序开发 1.1.1基础创建方式--常规 1.1.2手动创建方式--补充 1.1.3基础创建方式--下载 1.1.4基础创建方式--阿里云 1. ...
- SpringBoot源码解析(十一)自定义banner
上篇文章结束了prepareEnvironment方法的分析,本篇继续SpringApplication的run方法往下走,看一个比较简单的点--banner打印 所谓banner就是SpringBo ...
- SpringBoot系统整理|基础篇|黑马视频
写在前面:很早之前看了狂神的springboot快速入门,后来发现还是有很多开发知识点需要补充学习.乘着假期,将基础篇.运维实用篇.开发实用篇.原理篇一口气学习巩固,再次记录下学习笔记.系列笔记在sp ...
最新文章
- AndroidManifest.xml文件详解
- 9 个可以快速掌握的 Java 性能调优技巧
- GlusterFS架构与维护
- asp单元格合并后宽度没有合并_宅在家里跟着大牛从零开始学excel第五课-合并,边框,列宽行高...
- linux开启关闭网络指令
- LoRa全链路打通教程01 - LoRa网关配置查看和修改方法详解(以ST P-NUCLEO-LRWAN3 套件为例)
- 2021中青杯C题-在线教学的分析与研究
- ORA-12162错误解决
- EJB2.0雨夜教程之一
- cm4 NVIC完全解析
- 在线IP到地理位置解析的API接口,IP到地理位置、所属组织名、AS号、域名反查
- 鲤鱼溪传说:神鱼与三仙姑
- python文件读取下一个字符_python文件的读写总结
- spring cloud contract的应用实现与概念理解-服务提供者一侧的落地
- mysql本周 下周下月,mysql 日期计算,今天,明天,本周,下周,本月,下月
- 用计算机怎么更改进位制,计算机中的进位制,8421法是怎么转换的啊,求解
- 计算机组成原理(计算机硬件)
- MacClean360 for Mac(mac系统清理软件)
- 生活的乐趣源于生活本身
- Java-Level1-day02:录入信息案例;变量交换;字面值规则;基本数据类型处理问题;运算符;流程控制if分支结构