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:可以处理的异常 &…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
