SpringBoot自定义Banner使用详解
作者:pcdd
1. 什么是 Banner
启动 Spring Boot 时,几乎总是能在控制台上方看到如下横幅,这个也叫字符画、英文ASCII艺术字
2. 如何修改 Banner
默认情况下,只需在 resources 根目录(准确说是 classpath)下新建一个 banner.txt 文件,内容即为 Banner
在 banner.txt 文件中,可以使用可用的任何键 Environment 以及以下任何占位符
Variable | Description |
${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 在线生成工具
可以将输入的文本转换为 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 下的配置项就可以发现
通过配置项 spring.banner.image.location 的默认值可以看出,只需在 classpath 下放入一个 banner.gif 图片即可,经过测试,除了 gif 格式的图片,jpg、jpg 也能被识别,实际效果就是将图片转换为字符画
以下图为例(盒马.jpg)
spring: banner: image: location: static/盒马.jpg width: 38
由于默认宽度(76)下在控制台中生成的Banner过大,不便截图,故此处指定了 width 属性
生成效果:
可以看出,生成的 Banner 和原图十分相似,甚至连颜色都还原了(用了某种算法)
6.2 增强显示效果
还可以进一步增强显示效果,通过设置 spring.banner.image.pixelmode,将渲染图像时使用的像素模式由默认的 text 模式改为 block 模式
spring: banner: image: location: static/盒马.jpg width: 38 pixelmode: block
生成效果:
6.3 更多配置项
至于 spring.banner.image 的其他属性不再逐一演示,因为十分简单,参照文档一试便知,附上
遗憾的是,在 Spring Boot 3 中有关 spring.banner.image.* 的配置项均已弃用,该功能已被剔除,仅支持文本文件的方式生成 Banner
7. 补充
在 2 版本中,可以同时指定文本文件和图片生成 Banner。
若同时指定,控制台 Banner 打印顺序为:文本文件、图片
到此这篇关于SpringBoot自定义Banner使用详解的文章就介绍到这了,更多相关SpringBoot自定义Banner内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!