炫酷的启动方式——如何定制Spring Boot的Banner

导语

​ 相信使用过Spring Boot的同学对下面这张图片都不陌生,没错,下面就是Spring Boot的启动打印内容,是不是感觉千篇一律、毫无新意呢?是不是早就想换了这个图案?那么这篇文章将会手把手教你如何更换启动打印内容,使你的Spring Boot启动变的别具一格、格外酷炫。

在这里插入图片描述

1,直入正题

特意翻了一下源码,发现Spring Boot有个接口是专门做这个操作的:org.springframework.boot.Banner。当然了,如果你不嫌麻烦,完全可以实现这个接口,使用Java代码,实现启动时打印内容的定制,但是吧,就这么个小操作,当然不会麻烦各位动手去写了,我们且看以下两个类:

  • org.springframework.boot.ResourceBanner

文本格式,Spring Boot 会读取配置项banner.txtbanner.location,从配置项中获取真实的文件地址;如果配置中没有配置,会把配置项作为文件去加载。

  • org.springframework.boot.ImageBanner

图片格式,Spring Boot 加载配置项banner.image.location,从配置项中获取真实的路径,Spring Boot 会根据配置项的路径加载文件。
如果没有配置banner.image.location,转而依次加载banner.gifbanner.jpgbanner.png这三个中存在的文件。

如果上面两种都没有配置,Spring Boot 就会加载默认的 Banner。

接下来我们会介绍使用文本格式,定制属于你自己的启动Banner:

在启动类中加入打印开关

//控制台打印
springApplication.setBannerMode(Banner.Mode.CONSOLE);
//关闭
springApplication.setBannerMode(Banner.Mode.OFF);

创建Banner 文本文件

src/main/resources/banner.txt

下面这个是最经典的启动Banner,据听说,用上之后,写代码嗖嗖的,而且无BUG,就是这么神奇。

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

从上面的内容中可以看到,还使用了一些属性设置 :

  • ${AnsiColor.BRIGHT_RED}:设置控制台中输出内容的颜色,可以自定义,具体参考org.springframework.boot.ansi.AnsiColor

  • ${application.version}:用来获取MANIFEST.MF文件中的版本号,这就是为什么要在Application.java中指定 SpringVersion.class

  • {application.formatted-version}:格式化后的{application.version}版本信息

  • ${spring-boot.version}:Spring Boot的版本号

  • {spring-boot.formatted-version}:格式化后的{spring-boot.version}版本信息

请看效果图:

在这里插入图片描述

从效果图看,我们定义的文本最后被上了颜色,颜色是如何转换的,可以参考 :效果参考请点击

2,骚操作

不仅如此,Spring Boot支持定制图片作为启动打印内容,方法如下 :

方法也很简单,也是上面的步骤,只是把图片复制到 src/main/resources/banner.jpg位置,并且要保证名字是banner.jpg 即可。

最后安利一个可以在线生成Banner的网站: https://www.bootschool.net/ascii

小结

本篇文章介绍了如何定制Spring Boot的Banner,虽然不能帮助开发,但是可以在枯燥的开发中增添一点乐趣,由于纯手打,难免会有纰漏,如果发现错误的地方,请第一时间告诉我,这将是我进步的一个很重要的环节。

原创文章 59 获赞 287 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_45124488/article/details/103746634