SpringBoot——Banner介绍
一、什么是Banner
Banner即横幅标语,我们在启动SpringBoot项目时会将Banner信息打印至控制台。我们可以输出一些图形、SpringBoot版本信息等内容。默认情况下是通过实现类SpringBootBanner输出的Banner内容,默认的输出内容如下。

二、自定义Banner
如果不想使用默认的Banner,我们可以通过自定义的方式在控制台输出我们想要打印的内容。SpringBoot支持输出图片和txt文件中的内容。下面以2.3.3.RELEASE版本进行介绍。
自定义Banner文本文件
默认情况下,只需要在resources目录下创建banner.txt文件,当项目启动时即可打印我们banner.txt中的内容。banner.txt文件的内容是只打印字体为黄色的SpringBootDemo和字体为红色的Springboot版本号:

效果如下图:

Banner图片文件
我们也可以将图片作为需要Banner打印的资源,默认情况下,我们只需要将图片放置在resources目录下,并且图片命名为banner.jpg(只支持后缀为gif、jpg、png的格式)即可。如下图:

效果如下图:

注意点
图片和TXT文件可以同时存在并输出,但是图片的优先级高于TXT文件,即项目启动时先输出图片再输出TXT的内容;
若默认情况下,且resources目录下同时存在名为banner,后缀不同的图片,则只会输出其中一张图片,输出的优先级为(banner.gif > banner.jpg > banner.png)。
三、banner.txt文件内容配置介绍
AnsiColor(设置字体颜色)
在banner.txt中可以通过如${AnsiColor.BRIGHT_YELLOW}设置后面输出内容的颜色。SpringBoot共提供了17种字体颜色,分别是DEFAULT、BLACK、RED、GREEN、YELLOW、BLUE、MAGENTA、CYAN、WHITE、BRIGHT_BLACK、BRIGHT_RED、BRIGHT_GREEN、BRIGHT_YELLOW、BRIGHT_BLUE、BRIGHT_MAGENTA、BRIGHT_CYAN、BRIGHT_WHITE。可以通过AnsiColor类查看。
AnsiBackground(设置背景颜色)
在banner.txt中可以通过如${AnsiBackground.BLUE}设置后面输出内容的背景颜色。SpringBoot共提供了17种背景颜色,分别是DEFAULT、BLACK、RED、GREEN、YELLOW、BLUE、MAGENTA、CYAN、WHITE、BRIGHT_BLACK、BRIGHT_RED、BRIGHT_GREEN、BRIGHT_YELLOW、BRIGHT_BLUE、BRIGHT_MAGENTA、BRIGHT_CYAN、BRIGHT_WHITE。可以通过AnsiBackground类查看。
AnsiStyle(设置字体样式)
在banner.txt中可以通过如${AnsiStyle.BOLD}设置后面输出内容的字体样式。SpringBoot共提供了17种背景颜色,分别是NORMAL(正常)、BOLD(加粗)、FAINT(模糊)、ITALIC(倾斜)、UNDERLINE(下划线)。可以通过AnsiStyle类查看。自测字体样式只有BOLD和UNDERLINE生效,NORMAL、BOLD、FAINT、ITALIC效果是一样的。
如果想将输出的Spring Boot Version内容的字体颜色、背景颜色和字体样式均改变可以通过以下方式实现。如将Spring Boot版本号设置为红色字体,白色背景,字体加粗带下划线,可以通过${AnsiColor.BRIGHT_RED}${AnsiBackground.BLACK}${AnsiStyle.UNDERLINE}${AnsiStyle.BOLD}实现样式的多重设置。实现效果如下图。

spring-boot.version
项目所使用的SpringBoot的版本号。
spring-boot.formatted-version
格式化后的${spring-boot.version}版本信息。
application.version
用来获取MANIFEST.MF文件中的版本号。
application.formatted-version
格式化后的${application.version}版本信息。
四、Banner相关属性及配置介绍
spring.main.banner-mode
该属性用于设置程序运行时banner显示的模式。Banner有三种模式:OFF(禁止打印Banner)、CONSOLE(打印Banner至控制台)、LOG(打印Banner至日志文件),可以通过Banner接口下Mode枚举看到。默认值是console。
spring.main.show-banner
该属性用于设置程序运行时是否显示banner,默认值是true。该属性可由上面介绍的spring.main.banner-mode属性替代。
spring.banner.location
该属性用于配置Banner文本资源位置。默认值为classpath:banner.txt,即默认情况下,程序启动时会找resources目录下的banner.txt文件。若配置了该属性,如配置为spring.banner.location=classpath:banner/banner-txt.txt,则项目启动后会去resources/banner目录下加载banner-test.txt文件。
spring.banner.image.location
该属性用于配置Banner图片的文件位置,(也可使用jpg或png)。默认值为classpath:banner.gif,即默认情况下,程序启动时会找resources目录下,名为banner,后缀为(gif,jpg,png)的图片文件。且按gif,jpg,png的顺序匹配后缀,若匹配到则输出该图片。若配置了该属性,如配置为spring.banner.image.location=classpath:banner/banner-image.jpg,则项目启动后会去resources/banner目录下加载banner-image.jpg图片。
spring.banner.charset
该属性用于配置banner文件的字符集编码,默认值是UTF-8。
spring.banner.image.bitdepth
该属性用于配置banner图片的ANSI颜色的位深度,默认值是4。支持的值是4(16色)或8(256色)。
spring.banner.image.height
该属性用于配置banner图像的字符高度(默认基于图像高度)
spring.banner.image.invert
该属性用于配置暗终端主题的图片是否应该倒置,默认值是false。
spring.banner.image.margin
该属性用于配置Banner图片左手图像边距,单位为字符。默认值为2。
spring.banner.image.pixelmode
该属性用于配置渲染图像时要使用的像素模式,默认值为TEXT。可选择模式为TEXT和BLOCK。
spring.banner.image.width
该属性用于配置Banner图像的宽度,单位为chars,默认值为76。
五、禁用Banner打印
Banner有三种模式:OFF(禁止打印Banner)、CONSOLE(打印Banner至控制台)、LOG(打印Banner至日志文件),可以通过Banner接口下Mode枚举看到。如果不想打印Banner内容,可以通过如下四种方式禁用。
通过配置文件方式
在配置文件中配置spring.main.banner-mode=OFF或spring.main.show-banner=false。
通过代码形式
通过setBannerMode方法设置

通过设置虚拟机启动参数
在VM options中设置参数-Dspring.main.banner-mode=OFF。

4.通过Idea设置方式
通过勾选Hide banner隐藏Banner,如下图。

方式3和方式4本质上是一样的,都是通过在设置虚拟机参数的方式禁用Banner的打印。

相关文章:

SpringBoot——Banner介绍
一、什么是BannerBanner即横幅标语,我们在启动SpringBoot项目时会将Banner信息打印至控制台。我们可以输出一些图形、SpringBoot版本信息等内容。默认情况下是通过实现类SpringBootBanner输出的Banner内容,默认的输出内容如下。二、自定义Banner如果不想…...

【STL】综述
STL,一文即可知 文章目录一、STL基本知识概述容器二、序列式容器详述数组容器array向量容器vector双端队列容器deque链式容器list正向链容器forward_list二、关联式容器详述红黑树RB-Tree哈希表参考博客😊点此到文末惊喜↩︎ 一、STL基本知识 概述 STL…...
C++中编译的静态库与动态库
1.什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载…...
JS对象到原始值的转换
JS对象到原始值转换的复杂性 主要由于某些对象类型存在不止一种原始值的表示 对象到原始值转换的三种基本算法 在解释三种算法前需要了解toString valueOf这两个方法 toString 返回对象的字符串表示Array类的toString方法会将每个元素转换为字符串,再使用逗号作为…...

深度复盘-重启 etcd 引发的异常
作者信息: 唐聪、王超凡,腾讯云原生产品中心技术专家,负责腾讯云大规模 TKE 集群和 etcd 控制面稳定性、性能和成本优化工作。 王子勇,腾讯云专家级工程师, 腾讯云计算产品技术服务专家团队负责人。 概况 作为当前中国…...
2023年春招热点面试题(一)------新特性
文章目录一、Spring 6.0 新特性二、Spring Boot 3.0 新特性三、JDK 系列 新特性A.**JDK8新特性(2014年初)(LTS版本)**B. **JDK9新特性(2017年9月)**C.**JDK10新特性(2018年3月)**D.*…...
工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发
工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...

想要精通算法和SQL的成长之路 - 接雨水
想要精通算法和SQL的成长之路 - 接雨水前言一. 接雨水前言 想要精通算法和SQL的成长之路 - 系列导航 一. 接雨水 原题链接 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 输入:height [0,…...

Vue3 更高效的构建工具——Vite
文章目录前言一、Vite简介1. Vite组成2.为什么选 Vite?二、Vite的优缺点vite优点vite缺点三、使用Vite创建Vue3项目1. 创建 vite 的项目2.项目的结构前言 本文讲解了构建工具 Vite,目前只有vue3才可以使用Vite,如果本文对你有所帮助请三连支持博主。 下…...

优思学院|從《狂飙》高启强爱看的《孙子兵法》到六西格玛项目管理
近期最受人瞩目的,无疑是电视剧《狂飙》中出类拔萃的反派高启强。而在剧中,指引高启强走向顶峰的,正是那部著名的军事经典——《孙子兵法》。 在剧中,高启强在一次村庄改造项目上遇到了困难,但他仍保持冷静࿰…...
如何利用状态机编程实现启保停控制(含Stateflow模型介绍)
状态机的介绍这里不再赘述,概念也很简单没有过多的复杂理论。下面我们直接给出具体实现过程。有限自动状态机详细讲解请参看下面的文章链接: PLC面向对象编程系列之有限状态机(FSM)详解_RXXW_Dor的博客-CSDN博客_有限状态机 plc实现编写PLC控制机器动作类程序时,当分支比较…...

4. sql 语句中常用命令
1. 数据表: 本文中所有命令,测试的数据表结构如下图: 2. 查询语句: 2.1 基础查询:select //查询单个字段: select 字段名 from 表名; //查询多个字段 select 字段名1,字段名2,... from 表名; //查询所…...

第三章 Opencv图像像素操作
目录1.像素1-1.确定像素位置1-2.获取指定像素的像素值1-3.修改像素的BGR值2.用numpy模块操作像素2-1.创建图像1.创建黑白图像2.创建彩色图像3.创建随机图像2-2.拼接图像1.水平拼接hstack()方法2.垂直拼接vstack()方法1.像素 1.像素是构成数字图像的最小单位。每一幅图像都是由M…...

SpringBoot集成swagger3(CD2207)(内含教学视频+源代码)
SpringBoot集成swagger3(CD2207)(内含教学视频源代码) 教学视频源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87435564 目录SpringBoot集成swagger3(CD2207)&#…...
Go语言语言学习十三(反射的对象值)
在Go语言中反射不仅可以获取值的类型和种类,还可以获取值和更改值,使用reflect.ValueOf()获取和设置变量的值。 使用反射值包装任意值 Go语言通过reflect.ValueOf()获取的是值的反射值对象,书写格式如下 value : reflect.ValueOf(rawValue…...
【ESP 保姆级教程】玩转emqx数据集成篇② ——控制台输出动作(多用于测试环境调试功能)
忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-02-10 ❤️❤️ 本篇更新记录 2023-02-10 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…...

MyBatis案例 | 使用映射配置文件实现CRUD操作——添加数据
本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址:🔥JavaWeb Java入门篇: 🔥Java基础学习篇 Java进阶学习篇&…...

2023年,什么样的CRM,才是您最需要的?
春节假期刚刚结束,当大家还沉浸在新春佳节的喜悦中时,很多地方已经争先恐后地奋力开跑了。近日,全国各地方政府相继出台并发布了2023年数字化转型规划,纷纷结合自身的区位特色和优势资源,明确2023年乃至此后数年的数字…...
【C语言】编程初学者入门训练(6)
文章目录51. 计算一元二次方程52. 获取月份天数53. 简单计算器54. 线段图案55. 正方形图案56. 直角三角形图案57. 翻转直角三角形图案58. 带空格直角三角形图案59. 金字塔图案60. 翻转金字塔图案51. 计算一元二次方程 问题描述:从键盘输入a, b, c的值,编…...

Java笔记-异常相关
一、异常概述与异常体系结构 Error:Java虚拟机无法解决的严重问题: JVM系统内部错误,资源耗尽,如:StackOverflow \OOM堆栈溢出 处理办法:只能修改代码,不能编写处理异常的代码 Exception:可以处理的异常 &…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...