专业的编程技术博客社区

网站首页 > 博客文章 正文

Spring Boot Banner自定义(springboot banner在线生成)

baijin 2024-08-15 00:38:13 博客文章 12 ℃ 0 评论

TIPS

本文基于Spring Boot 2.1.4,理论支持Spring Boot所有版本。

相信玩过Spring Boot的童鞋一定在启动日志中见过类似如下的内容。本文详细探讨如何定制这部分内容,让内容更加趣味性。

 . ____ _ __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
 ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot :: (v2.1.4.RELEASE)

如何自定义

自定义Banner非常简单,只需在 classpath ( src/main/resources )下创建创建名为 banner.txt 的文件即可。

Banner生成工具

自己画Banner是很麻烦的,下面提供几款工具,将图片转换成ASCII字符,快速生成Banner。

下面是笔者准备好的Banner:

 _ooOoo_
 o8888888o
 88" . "88
 (| ^_^ |)
 O\ = /O
 ____/`---'\____
 .' \\| |// `.
 / \\||| : |||// \
 / _||||| -:- |||||- \
 | | \\\ - /// | |
 | \_| ''\---/'' | |
 \ .-\__ `-` ___/-. /
 ___`. .' /--.--\ `. . ___
 ."" '< `.___\_<|>_/___.' >'"".
 | | : `- \`.;`\ _ /`;.`/ - ` : | |
========`-.____`-.___\_____/___.-`____.-'========
 \ \ `-. \_ __\ /__ _/ .-` / /
 `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 佛祖保佑 永不宕机 永无Bug

占位符与描述信息

banner.txt 支持占位符,占位符可用于描述项目,同时也可定制Banner显示的具体细节。

允许使用的占位符如下表所示:

测试

创建 banner.txt ,内容如下:

${AnsiBackground.BRIGHT_YELLOW}${AnsiColor.BLUE}${AnsiStyle.BOLD}
应用版本:${application.version}
Spring Boot版本:${spring-boot.version}
应用标题:${application.title}

构建好应用后,启动日志将会打印类似如下图的内容:

图片支持

Spring Boot同样支持使用图片作为Banner,只需将图片放到项目的classpath(src/main/resources )目录下,命名为banner ,格式支持png 、jpg 、gif 。

不妨测试一下——

由图可知,Spring Boot会自动将图片转换成ASCII字符展示。此外,还可在 application.yml 中使用 spring.banner.image.* 配置图片Banner显示的具体细节。

TIPS

看到这里,聪明的你一定会想到:不借助本文介绍的 Banner生成工具 也可生成文字Banner!只需将图片命名为banner.jpg/png/gif,然后将打印出来的Banner日志复制出来,并命名为 banner.txt 即可。

禁用Banner

添加如下配置:

spring:
 main:
 banner-mode: "off"

或在启动类上添加类似如下代码:

public static void main(String[] args) {
 SpringApplication app = new SpringApplication(MySpringConfiguration.class);
 app.setBannerMode(Banner.Mode.OFF);
 app.run(args);
}

福利

最后献上笔者项目中所使用的Banner。

${AnsiColor.GREEN}
 _ooOoo_
 o8888888o
 88" . "88
 (| ^_^ |)
 O\ = /O
 ____/`---'\____
 .' \\| |// `.
 / \\||| : |||// \
 / _||||| -:- |||||- \
 | | \\\ - /// | |
 | \_| ''\---/'' | |
 \ .-\__ `-` ___/-. /
 ___`. .' /--.--\ `. . ___
 ."" '< `.___\_<|>_/___.' >'"".
 | | : `- \`.;`\ _ /`;.`/ - ` : | |
========`-.____`-.___\_____/___.-`____.-'========
 \ \ `-. \_ __\ /__ _/ .-` / /
 `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 佛祖保佑 永不宕机 永无Bug
==================================================
Application Info:${application.title}-${application.version}
Powered by:Spring Boot ${spring-boot.version}

效果:

灵感启迪

如果你对Banner放什么感到茫然,笔者给你几个思路:

?项目愿景/期望(例如上面,笔者就期望永不宕机、永无Bug)

?项目/团队/企业Slogan(好的项目都有一个好的Slogan)

?你们老板的帅照(会跪舔很重要啊)

?各种恶搞

相关源码

?org.springframework.boot.SpringApplicationBannerPrinter

?org.springframework.boot.SpringBootBanner

比较简单,对原理感兴趣的童鞋可以研究一下。

配套代码

?GitHub[1]

?Gitee[2]

References

[1] GitHub: https://github.com/eacdy/spring-boot-study/tree/master/spring-boot-banner

[2] Gitee: https://gitee.com/itmuch/spring-boot-study/tree/master/spring-boot-banner

干货分享

最近将个人学习笔记整理成册,使用PDF分享。关注我,回复如下代码,即可获得百度盘地址,无套路领取!

?001:《Java并发与高并发解决方案》学习笔记;

?002:《深入JVM内核——原理、诊断与优化》学习笔记;

?003:《Java面试宝典》

?004:《Docker开源书》

?005:《Kubernetes开源书》

?006:《DDD速成(领域驱动设计速成)》

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表