SpringBoot——Banner介绍

news2025/3/14 0:12:49

一、什么是Banner

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

二、自定义Banner

如果不想使用默认的Banner,我们可以通过自定义的方式在控制台输出我们想要打印的内容。SpringBoot支持输出图片和txt文件中的内容。下面以2.3.3.RELEASE版本进行介绍。

  1. 自定义Banner文本文件

默认情况下,只需要在resources目录下创建banner.txt文件,当项目启动时即可打印我们banner.txt中的内容。banner.txt文件的内容是只打印字体为黄色的SpringBootDemo和字体为红色的Springboot版本号:

效果如下图:

  1. Banner图片文件

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

效果如下图:

  1. 注意点

  1. 图片和TXT文件可以同时存在并输出,但是图片的优先级高于TXT文件,即项目启动时先输出图片再输出TXT的内容;

  1. 若默认情况下,且resources目录下同时存在名为banner,后缀不同的图片,则只会输出其中一张图片,输出的优先级为(banner.gif > banner.jpg > banner.png)。

三、banner.txt文件内容配置介绍

  1. 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类查看。

  1. 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类查看。

  1. 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}实现样式的多重设置。实现效果如下图。

  1. spring-boot.version

项目所使用的SpringBoot的版本号。

  1. spring-boot.formatted-version

格式化后的${spring-boot.version}版本信息。

  1. application.version

用来获取MANIFEST.MF文件中的版本号。

  1. application.formatted-version

格式化后的${application.version}版本信息。

四、Banner相关属性及配置介绍

  1. spring.main.banner-mode

该属性用于设置程序运行时banner显示的模式。Banner有三种模式:OFF(禁止打印Banner)、CONSOLE(打印Banner至控制台)、LOG(打印Banner至日志文件),可以通过Banner接口下Mode枚举看到。默认值是console。

  1. spring.main.show-banner

该属性用于设置程序运行时是否显示banner,默认值是true。该属性可由上面介绍的spring.main.banner-mode属性替代。

  1. spring.banner.location

该属性用于配置Banner文本资源位置。默认值为classpath:banner.txt,即默认情况下,程序启动时会找resources目录下的banner.txt文件。若配置了该属性,如配置为spring.banner.location=classpath:banner/banner-txt.txt,则项目启动后会去resources/banner目录下加载banner-test.txt文件。

  1. 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图片。

  1. spring.banner.charset

该属性用于配置banner文件的字符集编码,默认值是UTF-8。

  1. spring.banner.image.bitdepth

该属性用于配置banner图片的ANSI颜色的位深度,默认值是4。支持的值是4(16色)或8(256色)。

  1. spring.banner.image.height

该属性用于配置banner图像的字符高度(默认基于图像高度)

  1. spring.banner.image.invert

该属性用于配置暗终端主题的图片是否应该倒置,默认值是false。

  1. spring.banner.image.margin

该属性用于配置Banner图片左手图像边距,单位为字符。默认值为2。

  1. spring.banner.image.pixelmode

该属性用于配置渲染图像时要使用的像素模式,默认值为TEXT。可选择模式为TEXT和BLOCK。

  1. spring.banner.image.width

该属性用于配置Banner图像的宽度,单位为chars,默认值为76。

五、禁用Banner打印

Banner有三种模式:OFF(禁止打印Banner)、CONSOLE(打印Banner至控制台)、LOG(打印Banner至日志文件),可以通过Banner接口下Mode枚举看到。如果不想打印Banner内容,可以通过如下四种方式禁用。

  1. 通过配置文件方式

在配置文件中配置spring.main.banner-mode=OFFspring.main.show-banner=false。

  1. 通过代码形式

通过setBannerMode方法设置

  1. 通过设置虚拟机启动参数

在VM options中设置参数-Dspring.main.banner-mode=OFF。

4.通过Idea设置方式

通过勾选Hide banner隐藏Banner,如下图。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/335106.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

肠道微生态失调了?可以这样调回来

我们的肠道寄生着大概10万亿个细菌,它们可以合成维生素、必需氨基酸,并参与糖类和蛋白质的代谢,同时还能促进铁、镁、锌等矿物元素的吸收,一直与人体保持着动态平衡。肠道微生态平衡时,人体可以保持正常的生理功能&…

PyQt5编程扩展 3.2 资源文件的使用

目录 本例运行效果: 设计Qt窗体 建立项目 放一个Group Box 放三个Label 放一个Horizontal Slider 放两个Line Edit 层次结构 布局 放一个Group Box 放两个Label 放两个Line Edit 放一个Push Button 层次结构 布局 放一个frame 层次结构 布局 窗体…

Python语言零基础入门教程(十二)

Python 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号,列表使用方括号。 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 如下实例: tup1 (physics, chemistry,…

【Unity VR开发】结合VRTK4.0:将浮点操作转换为布尔操作

语录: 奈何桥上奈何愁,奈何桥下浣溪流,奈何人人奈何泪,奈何奈何洗春秋。 前言: 有时,您可能希望使用 一个值来激活或停用操作类型。例如,按下控制器上的扳机轴会导致在完全按下扳机时发生操作。…

西瓜数据集读取的详细解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…

php mysql美食网站Dreamweaver

目 录 1 绪论 5 1.1 开发背景 5 1.2 开发意义 6 1.3 本文所做的工作及组织结构 7 2 开发环境介绍 7 2.1 Apache 7 2.2 Mysql 8 2.3 Php 8 2.4 Dreamweaver 9 2.5 WAMP 10 2.6 系统对软硬件要求 11 3 系统分析 11 3.1 需求分析 12 3.…

设计模式之命令模式,以C++为例。

命令模式一般叫:command模式,它将请求的发送者和接受者独立开。命令模式的目的是使得请求的发送者与请求的接收者解耦,并且使得请求的发送者可以控制请求的接收者。 目录 一、命令模式能干什么? 二、多级命令 三、进阶写法 一…

HTTP重定向和转发

1)重定向会产生2次请求 2)重定向后url地址变化 3)重定有三种方法实现 // 重定向方式一 // resp.setStatus(resp.SC_MOVED_TEMPORARILY); // resp.setHeader("Location","http://www.baidu.com"…

JavaEE 初阶 — 确认应答机制

文章目录确认应答机制(安全机制)1 什么是后发先至问题1 如何解决后发先至问题确认应答机制(安全机制) 确认应答 是实现可靠传输的最核心机制。 这里指的 可靠传输 不是说 100% 可以把消息发给接收方,而是尽力而为&…

【Linux】进程优先级 | 进程的切换 | 环境变量详解

🤣 爆笑教程 👉 《看表情包学Linux》👈 猛戳订阅 🔥 ​ 💭 写在前面:我们先讲解进程的优先级,探讨为什么会存在优先级,以及如何查看系统进程、进程优先级的修改。然后讲解进程的切…

基于SpringBoot的器材管理系统

介绍有一家实验室,里面有100台实验设备,5个实验员。每个设备使用之前需要对设备进行检查,现在存在以下痛点: 实验员检查器材的时候,发现器材不见了,他们都不知道器材是坏了还是其他实验员用到其他器材。非常…

传奇GOM引擎配置PAK密码补丁教程

因为我很少接触GOM引擎,所有很晚才知道PAK密码的事情,以前经常在群里或者QQ上有人问站长,说补丁有PAK密码怎么办,我起初不在意,限制发现是一个大问题,好吧,今天借助这篇文章,分享一下…

Python获取公众号(pc客户端)数据,使用Fiddler抓包工具

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 今天来教大家如何使用Fiddler抓包工具,获取公众号(PC客户端)的数据。 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,…

Spring JdbcTemplate 和 事务

JdbcTemplate概述 JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和,操作nosql数据库的RedisTemplate,操作消息…

UDP协议

文章目录一、前沿知识应用层传输层二、UDP协议一、前沿知识 应用层 应用层:描述了应用程序如何理解和使用网络中的通信数据。 我们程序员在应用层的主要工作是自定义协议,因为下面四层都在系统内核/驱动程序/硬件中已经实现好了,不能去修改…

【数据集】中国各类水文专业常用数据集合集

1 水文气象数据 1.1 中国站点尺度天然径流量估算数据集(1961~2018年) 论文: J2022-High-quality reconstruction of China’s natural streamflow-缪驰远(北京师范大学地理科学学部) 研究内容&#xff1a…

TLV73312PQDRVRQ1稳压器TPS622314TDRYRQ1应用原理图

一、TLV73312PQDRVRQ1低压差稳压器 1.2V 300MATLV733 300mA 低压差稳压器是有 300mA 拉电流能力的超小型、低静态电流 LDO,具有良好的线路和负载瞬态性能。这些器件具有 1% 的典型精度。TLV733 系列设计具有先进的无电容器结构,确保无需输入或输出电容器…

thinkPHP6接入workman

上篇介绍了workman实现websocket功能(链接:https://blog.csdn.net/weixin_38155824/article/details/128952037) 这篇就介绍如何在thinkPHP6项目中接入workman。 利用TP6的自定义命令开启websocket服务 查看TP6手册:命令行>自…

Oracle Dataguard(主库为 Oracle rac 集群)配置教程(01)—— dataguard 服务器安装 Oracle 软件

Oracle Dataguard(主库为 Oracle rac 集群)配置教程(01)—— dataguard 服务器安装 Oracle 软件 / 本专栏详细讲解 Oracle Dataguard(Oracle 版本为11g,主库为双节点 Oracle rac 集群)的配置过程…

共享模型之无锁(二)

1.原子基本类型 1>.J.U.C并发包提供了多个原子基本类型: AtomicBoolean AtomicInteger AtomicLong ...2>.以AtomicInteger为例: public class TestAtomicIntegerDemo01 {public static void main(String[] args) {//原子整型类AtomicInteger i new AtomicInteger(0);…