当前位置: 首页 > news >正文

SpringBoot——Banner介绍

一、什么是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的打印。

相关文章:

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,如果本文对你有所帮助请三连支持博主。 下…...

优思学院|從《狂飙》高启强爱看的《孙子兵法》到六西格玛项目管理

近期最受人瞩目的,无疑是电视剧《狂飙》中出类拔萃的反派高启强。而在剧中,指引高启强走向顶峰的,正是那部著名的军事经典——《孙子兵法》。 在剧中,高启强在一次村庄改造项目上遇到了困难,但他仍保持冷静&#xff0…...

如何利用状态机编程实现启保停控制(含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:可以处理的异常 &…...

合宙 MCP 工具:TRAE AI 自然语言控制 Luatools 实操

合宙MCP工具基于 MCP 协议,实现 AI 大模型与 Luatools 的无缝连接,开发者通过简单 JSON 配置,就能在 TRAE 编辑器用自然语言操控 Luatools 完成固件下载、日志获取等操作,告别手动烧录的繁琐。 核心能力: 固件自动烧录…...

前端拖拽交互实现:别再只会用原生拖拽了

前端拖拽交互实现:别再只会用原生拖拽了 毒舌时刻这代码写得跟网红滤镜似的——仅供参考。各位前端同行,咱们今天聊聊前端拖拽交互。别告诉我你还在用原生的HTML5拖拽API,那感觉就像在用诺基亚手机——能打电话,但体验太差。 为什…...

从拼图游戏到自动驾驶:点云配准技术的跨领域进化史

从拼图游戏到自动驾驶:点云配准技术的跨领域进化史 1. 三维世界的数字拼图师 1987年,当Paul Besl和Neil McKay在实验室里尝试将两组扫描数据对齐时,他们可能不会想到,这项被称为迭代最近点(ICP)的技术会成为…...

python-flask-djangol框架的青少年编程学习平台

目录技术选型与架构设计功能模块划分开发阶段规划安全与扩展性示例代码片段(Flask路由)部署与运维教育适配项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术选型与架构设计 采用Python生态的Flask或D…...

3大核心功能:让iOS推送调试效率提升10倍的SmartPush工具全解析

3大核心功能:让iOS推送调试效率提升10倍的SmartPush工具全解析 【免费下载链接】SmartPush SmartPush,一款iOS苹果远程推送测试程序,Mac OS下的APNS工具APP,iOS Push Notification Debug App 项目地址: https://gitcode.com/gh_mirrors/smar/SmartPush 一、问…...

解锁TikTok电商API:PHP开发者的零门槛接入方案

解锁TikTok电商API:PHP开发者的零门槛接入方案 【免费下载链接】tiktokshop-php Unofficial Tiktok Shop API Client in PHP. Use API version 202309 and later 项目地址: https://gitcode.com/gh_mirrors/ti/tiktokshop-php 跨境电商API对接新选择&#xf…...

Dify私有化部署实战:如何在企业内网快速搭建AI开发平台(含Docker镜像打包技巧)

Dify私有化部署实战:企业内网AI开发平台搭建全攻略 1. 企业内网部署Dify的核心价值与挑战 在数字化转型浪潮中,越来越多的企业开始将AI能力纳入核心业务系统。Dify作为开源的大语言模型应用开发平台,其私有化部署方案尤其适合对数据安全有严…...

Llama-3.2-3B效果体验:Ollama简单操作,产出专业级文案

Llama-3.2-3B效果体验:Ollama简单操作,产出专业级文案 1. 模型概览:小而精的文本生成专家 Llama-3.2-3B是Meta最新推出的轻量级语言模型,在3B参数规模下实现了接近大模型的文本生成质量。经过指令微调优化后,它在多语…...

煤矿电液阀系统摄像仪护套连接器 DLJ01(1000)参数

在煤矿综采工作面液压支架电液控制系统中,摄像仪护套连接器 DLJ01(1000)作为矿用本安型摄像仪与电源、信号传输线缆之间的专用接口,承担着视频信号与供电的稳定传输任务。其型号中的“1000”代表线缆长度为1000mm(1米)&#xff0c…...

Simulink三相变压器模块深度解析:从参数配置到电力系统仿真实战

1. 三相变压器模块的核心功能解析 Simulink中的Three-Phase Transformer模块就像电力系统的"翻译官",专门负责处理三相交流电的电压转换和相位调整。我在电力电子项目中最常使用的就是这个模块,因为它能完美还原真实变压器的各种"脾气秉…...