我们在28. SpringBoot启动时的Banner设置 这一小节介绍过设置Spring Boot的Banner,但是实际当中,我们希望做的更漂亮,所以也就有了这小节Spring Boot-启动彩蛋。(注意:这一个章节需要eclipse console支持ansi color)
我们都知道Spring Boot启动的时候,是如下的图标的:
那么我想要自定义的更漂亮,那么应该怎么做呢?
最简单的方式就是在resources目录下面放入一个banner.txt文件,Spring Boot启动的时候就会优先启动这个文件中的内容。
这里推荐两个字符画的网站,我们可以将生成的的字符串放入这个banner.txt文件中。
<!--[if !supportLists]-->· <!--[endif]-->http://www.network-science.de/ascii/
<!--[if !supportLists]-->· <!--[endif]-->http://patorjk.com/software/taag/
比如:我生成一个angel的图标,启动的时候,如下:
但是仅仅是这样看起来并不好看,还不如原来的图标好看呢。实际上Spring Boot为这个彩蛋提供了不少美化功能。Spring Boot提供了一个枚举类AnsiColor,这个类可以控制banner.txt中的字符颜色,而且非常容易使用。比如我可以将字符设置成颜色:BRIGHT_BLUE,只需要在banner.txt的最前面添加${AnsiColor.BRIGHT_BLUE}
即可,运行效果如下:
类似 ${AnsiColor.BRIGHT_BLUE} 这种表达式,其实可以放置多个,启动界面上的颜色,总是会根据AnsiColor的设置改变界面的颜色,这样启动的界面就会显示多种不同的颜色了。除了这样美化的功能之外,启动界面很重要的功能就是要告诉我们这个项目的一些重要信息。
${application.version}这个是MANIFEST.MF文件中的版本号${application.formatted-version}这个是上面的的版本号前面加v后上括号${spring-boot.version}这个是springboot的版本号${spring-boot.formatted-version}同上
把以上信息通过${}放入banner.txt中,就会打印出项目对应的信息。
这里放一个完整的banner.txt文件:
${AnsiColor.BRIGHT_BLUE}
______ __ __ ______ ______ __
/\ __ \ /\ "-.\ \ /\ ___\ /\ ___\ /\ \
\ \ __ \ \ \ \-. \ \ \ \__ \ \ \ __\ \ \ \____
\ \_\ \_\ \ \_\\"\_\ \ \_____\ \ \_____\ \ \_____\
\/_/\/_/ \/_/ \/_/ \/_____/ \/_____/ \/_____/
${AnsiColor.BRIGHT_GREEN}
::: Project (version:${application.version}) ::: \(^O^)/ Spring-Boot ${spring-boot.version}
还有Spring Boot更酷的就是还支持ansi编码,能够支持显示彩色图片,看如下效果图:(在本文档提供此banner.txt的下载)。
另外在文章中https://github.com/spring-projects/spring-boot/pull/4647 指出了还可以从一张图片生成Ascii编码,然后放入到我们的banner.txt进行显示出来,但是可以自己看看,这里我没有进行实践了。