TIPS 本文基于Spring Boot 2.1.4,理论支持Spring Boot所有版本。
相信玩过Spring Boot的童鞋一定在启动日志中见过类似如下的内容。本文详细探讨如何定制这部分内容,让内容更加趣味性。
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.4.RELEASE)
自定义Banner非常简单,只需在 classpath
( src/main/resources
)下创建创建名为 banner.txt
的文件即可。
自己画Banner是很麻烦的,下面提供几款工具,将图片转换成ASCII字符,快速生成Banner。
工具地址 | 作用 |
---|---|
http://patorjk.com/software/taag[1] | 写文字,选择字体,将字转成ASCII |
http://picascii.com/[2] | 上传图片,将图片转ASCII |
其他 | 使用搜索引擎,搜索”图片转ASCII”即可 |
下面是笔者准备好的Banner:
_ooOoo_ o8888888o 88" . "88 (| ^_^ |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||- \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . ___ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | |========`-.____`-.___\_____/___.-`____.-'======== \ \ `-. \_ __\ /__ _/ .-` / / `=---='^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 佛祖保佑 永不宕机 永无Bug
banner.txt
支持占位符,占位符可用于描述项目,同时也可定制Banner显示的具体细节。
允许使用的占位符如下表所示:
Description
创建 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
即可。
添加如下配置:
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[3]•Gitee[4]
最近将个人学习笔记整理成册,使用PDF分享。关注我,回复如下代码,即可获得百度盘地址,无套路领取! •001:《Java并发与高并发解决方案》学习笔记;•002:《深入JVM内核——原理、诊断与优化》学习笔记;•003:《Java面试宝典》•004:《Docker开源书》•005:《Kubernetes开源书》•006:《DDD速成(领域驱动设计速成)》•007:全部•008:加技术群讨论
•Spring Boot 2.x监控数据可视化(Actuator + Prometheus + Grafana手把手图文教程)•Spring Boot 最流行的 16 条最佳实践!•这才是实现分布式锁的正确姿势!•Spring Boot 2动态修改日志级别•Spring Boot 2发送邮件手把手图文教程•跨域访问支持(Spring Boot、Nginx、浏览器)•译:在 Spring Boot 中使用 Spring AOP 和 AspectJ 来测量方法的执行时间•Spring Boot、Dubbo项目Mock测试踩坑与总结