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

【Spring Boot】自定义 Banner

文章目录

  • 1. 什么是 Banner
  • 2. 如何修改 Banner
  • 3. IDEA 中演示
  • 4. 快速生成 Banner
  • 5. 指定 banner.txt 的位置
  • 6. 在 Spring Boot 2 中的说明
    • 6.1 图片生成 Banner
    • 6.1 增强显示效果
    • 6.3 更多配置项
  • 7. 补充

Spring Boot Version: 3.0.x

1. 什么是 Banner

启动 Spring Boot 时,几乎总是能在控制台上方看到如下横幅,这个也叫字符画、英文ASCII艺术字

在这里插入图片描述

2. 如何修改 Banner

默认情况下,只需在 resources 根目录(准确说是 classpath)下新建一个 banner.txt 文件,内容即为 Banner

在这里插入图片描述

在 banner.txt 文件中,可以使用可用的任何键 Environment 以及以下任何占位符

VariableDescription
${application.version}应用程序的版本号,例如1.0
${application.formatted-version}用括号括起来并以 v 为前缀,例如(v1.0)
${spring-boot.version}正在使用的 Spring Boot 版本。例如3.0.5
${spring-boot.formatted-version}同理,(v3.0.5)

3. IDEA 中演示

banner.txt 内容如下,使用一个经典的佛祖保佑 Banner,并演示占位符的使用

${spring-boot.formatted-version}
————————————————————————————————————————————————————————————————————
//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//            佛祖保佑       永不宕机     永无BUG                    //
————————————————————————————————————————————————————————————————————

运行如下,符合预期

在这里插入图片描述

4. 快速生成 Banner

对于复杂的 Banner(譬如上面的佛祖),手打显然是很浪费时间精力的,通常会借助一些 Banner 生成工具快速生成,推荐一个 Banner 在线生成工具:https://www.bootschool.net/ascii,可以将输入的文本转换为 Banner,并且有多种字体可选

5. 指定 banner.txt 的位置

上面提到默认情况下,banner.txt 必须放在 classpath(resources 根目录 )下方可生效,假设现在需要放在 resources/static 目录下,在 application.yml 添加如下配置项即可

spring:
  banner:
  	# 或者 static/banner.txt
    location: classpath:static/banner.txt

需要说明的是,在没有显式设置上述配置项时,Banner 文件只能为 banner.txt;显式设置后,Banner 文件名就可以为 xxx.txt

6. 在 Spring Boot 2 中的说明

6.1 图片生成 Banner

在 3.0.x 的版本中,Banner 仅能通过文本文件(banner.txt)的方式设置,但在 2 的版本中,除了文本文件,还可以通过图片的方式设置,查看 spring.banner 下的配置项就可以发现

![在这里插入图片描述](https://img-blog.csdnimg.cn/96342edf82fa440aaae959be2bd768ee.png

通过配置项 spring.banner.image.location 的默认值可以看出,只需在 classpath 下放入一个 banner.gif 图片即可,经过测试,除了 gif 格式的图片,jpg、png 也能被识别,实际效果就是将图片转换为字符画

以下图为例(盒马.png)
盒马.png

spring:
  banner:
    image:
      location: static/盒马.png
      width: 38

由于默认宽度(76)下在控制台中生成的Banner过大,不便截图,故此处指定了 width 属性

生成效果:

在这里插入图片描述

可以看出,生成的 Banner 和原图十分相似,甚至连颜色都还原了(可能运用了某个强大的算法,暂时没有深究)

6.1 增强显示效果

还可以进一步增强显示效果,通过设置 spring.banner.image.pixelmode,将渲染图像时使用的像素模式由默认的 text 模式改为 block 模式

spring:
  banner:
    image:
      location: static/盒马.png
      width: 38
      pixelmode: block

生成效果:

在这里插入图片描述

6.3 更多配置项

至于 spring.banner.image 的其他属性不再逐一演示,因为十分简单,参照文档一试便知,附上

在这里插入图片描述

遗憾的是,在 Spring Boot 3 中有关 spring.banner.image.* 的配置项均已弃用,该功能已被剔除,仅支持文本文件的方式生成 Banner

在这里插入图片描述

7. 补充

在 2 版本中,可以同时指定文本文件和图片生成 Banner。
若同时指定,控制台 Banner 打印顺序为:文本文件、图片

本文链接:https://blog.csdn.net/weixin_43553153/article/details/130013697


http://www.kler.cn/a/7981.html

相关文章:

  • 从社交媒体到元宇宙:Facebook未来发展新方向
  • 【Linux】-学习笔记03
  • SpringCloud学习笔记
  • 2024版本IDEA创建Sprintboot项目下载依赖缓慢
  • 使用 start-local 脚本在本地运行 Elasticsearch
  • AcWing 300 任务安排1
  • WebSocket与HTTP联系及Socket的区别
  • VisualStudio如何进行OneNote插件开发?
  • 全文检索工具 Lucene 入门
  • 响应式布局是什么?如何实现响应式布局
  • 逻辑删除和唯一约束冲突的解决方案
  • springcloud:xxl-job的任务触发机制及调度过期策略
  • IT知识百科:什么是BGP?
  • ubuntu20.04 下载 linux源码和编译简单测试模块
  • Python 变量教程打包和解包参数
  • NHibernate教程_编程入门自学教程_菜鸟教程-免费教程分享
  • Linux系统【centos7】常用系统命令大全
  • 剪枝与重参第二课:修剪方法和稀疏训练
  • webpack5搭建react框架-开发环境配置
  • 【Linux】文件系统
  • C++_07----强制类型转换异常
  • ORACLE EBS 系统主数据管理(2)
  • 《论文阅读》Unified Named Entity Recognition as Word-Word Relation Classification
  • 论文阅读_MAE
  • 快速分析一个行业,这个工具必不可少
  • Nuxt3中的常用seo标签