Spring Boot -- 启动彩蛋
使用Spring Boot启动的jar包总是会显示一个Spring的图标:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.3.RELEASE)
实际上Spring Boot在这个位置,放了一个彩蛋,我们是可以自定义这个图标的。
我们可以在resource目录下面放入一个banner.txt文件,Spring Boot启动项目的时候就会优先启动这个文件中的内容。
这里给大家推荐两个个字符画生成的网站,我们可以利用生成的字符串放入这个banner.txt文件:
比如我生成一个star wars的图标:
_______.___________. ___ .______
/ | | / \ | _ \
| (----`---| |----` / ^ \ | |_) |
\ \ | | / /_\ \ | /
.----) | | | / _____ \ | |\ \----.
|_______/ |__| /__/ \__\ | _| `._____|
____ __ ____ ___ .______ _______.
\ \ / \ / / / \ | _ \ / |
\ \/ \/ / / ^ \ | |_) | | (----`
\ / / /_\ \ | / \ \
\ /\ / / _____ \ | |\ \----.----) |
\__/ \__/ /__/ \__\ | _| `._____|_______/
这样启动的时候

但是仅仅是这样看起来并不好看,还不如原来的图标好看呢。实际上Spring Boot为这个彩蛋提供了不少美化功能。
Spring Boot提供了一个枚举类AnsiColor,这个类可以控制banner.txt中的字符颜色,而且非常容易使用。
比如我可以将字符设置成颜色:BRIGHT_YELLOW
${AnsiColor.BRIGHT_YELLOW}
_______.___________. ___ .______
/ | | / \ | _ \
| (----`---| |----` / ^ \ | |_) |
\ \ | | / /_\ \ | /
.----) | | | / _____ \ | |\ \----.
|_______/ |__| /__/ \__\ | _| `._____|
____ __ ____ ___ .______ _______.
\ \ / \ / / / \ | _ \ / |
\ \/ \/ / / ^ \ | |_) | | (----`
\ / / /_\ \ | / \ \
\ /\ / / _____ \ | |\ \----.----) |
\__/ \__/ /__/ \__\ | _| `._____|_______/
再重新启动项目,启动界面就会变成这个样子:

类似 ${AnsiColor.BRIGHT_YELLOW} 这种表达式,其实可以放置多个,启动界面上的颜色,总是会根据AnsiColor的设置改变界面的颜色,这样启动的界面就会显示多种不同的颜色了。
除了这样美化的功能之外,启动界面很重要的功能就是要告诉我们这个项目的一些重要信息。
${application.version} 这个是MANIFEST.MF文件中的版本号
${application.formatted-version} 这个是上面的的版本号前面加v后上括号
${spring-boot.version} 这个是springboot的版本号
${spring-boot.formatted-version}同上
把以上信息通过${}放入banner.txt中,就会打印出项目对应的信息。
这里放一个完整的demo:
${AnsiColor.BRIGHT_YELLOW}
_______.___________. ___ .______ ____ __ ____ ___ .______ _______.
/ | | / \ | _ \ \ \ / \ / / / \ | _ \ / |
| (----`---| |----` / ^ \ | |_) | \ \/ \/ / / ^ \ | |_) | | (----`
\ \ | | / /_\ \ | / \ / / /_\ \ | / \ \
.----) | | | / _____ \ | |\ \----. \ /\ / / _____ \ | |\ \----.----) |
|_______/ |__| /__/ \__\ | _| `._____| \__/ \__/ /__/ \__\ | _| `._____|_______/
${AnsiColor.BRIGHT_BLUE}
::: Project (version:${application.version}) ::: \(^O^)/ Spring-Boot ${spring-boot.version}
启动就会是这一个样子:

Spring Boot -- 启动彩蛋的更多相关文章
- 82. Spring Boot – 启动彩蛋【从零开始学Spring Boot】
我们在[28. SpringBoot启动时的Banner设置 ] 这一小节介绍过设置Spring Boot的Banner,但是实际当中,我们希望做的更漂亮,所以也就有了这小节Spring Boot-启 ...
- Spring Boot 启动原理分析
https://yq.aliyun.com/articles/6056 转 在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启 ...
- Spring Boot启动过程(四):Spring Boot内嵌Tomcat启动
之前在Spring Boot启动过程(二)提到过createEmbeddedServletContainer创建了内嵌的Servlet容器,我用的是默认的Tomcat. private void cr ...
- Spring Boot启动过程(七):Connector初始化
Connector实例的创建已经在Spring Boot启动过程(四):Spring Boot内嵌Tomcat启动中提到了: Connector是LifecycleMBeanBase的子类,先是设置L ...
- spring boot 启动问题
spring boot启动报错误 Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.co ...
- Spring Boot 启动(四) EnvironmentPostProcessor
Spring Boot 启动(四) EnvironmentPostProcessor Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698. ...
- Spring Boot 启动(二) 配置详解
Spring Boot 启动(二) 配置详解 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring Boot 配置 ...
- Spring boot 启动报错 Failed to auto-configure a DataSource
1.Spring boot 启动报错 Failed to auto-configure a DataSource 参考资料https://blog.csdn.net/liuyinfei_java/ar ...
- Spring Boot 启动(二) Environment 加载
Spring Boot 启动(二) Environment 加载 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 上一节中 ...
随机推荐
- 关于Unity3D自定义编辑器的学习
被人物编辑器折腾了一个月,最终还是交了点成品上去(还要很多优化都还么做). 刚接手这项工作时觉得没概念,没想法,不知道.后来就去看<<Unity5.X从入门到精通>>中有关于 ...
- 简谈百度坐标反转至WGS84的三种思路
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 基于百度地图进行数据展示是目前项目中常见场景,但是因为百度地图 ...
- 【CSS进阶】伪元素的妙用--单标签之美
最近在研读 <CSS SECRET>(CSS揭秘)这本大作,对 CSS 有了更深层次的理解,折腾了下面这个项目: CSS3奇思妙想 -- Demo (请用 Chrome 浏览器打开,非常值 ...
- nodejs进阶(2)—函数模块调用
函数调用 1. 文件内普通函数调用 创建一个js文件命名为2_callFunction.js,其中定义一个函数fun1,向返回对象输出了一段字符串“你好,我是fun1”. //------------ ...
- 使用Java原生代理实现AOP
### 本文由博主柒.原创,转载请注明出处 ### 完整源码下载地址 [https://github.com/MatrixSeven/JavaAOP](https://github.com/Matri ...
- 从零开始编写自己的C#框架(27)——什么是开发框架
前言 做为一个程序员,在开发的过程中会发现,有框架同无框架,做起事来是完全不同的概念,关系到开发的效率.程序的健壮.性能.团队协作.后续功能维护.扩展......等方方面面的事情.很多朋友在学习搭建自 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- Angular2开发笔记
Problem 使用依赖注入应该注意些什么 服务一般用来做什么 指令一般用来做什么 angular2如何提取公共组件 angular2为什么不需要提公共组件 父组件与子组件之间如何通讯 什么时候应该使 ...
- 使用NUnit为游戏项目编写高质量单元测试的思考
0x00 单元测试Pro & Con 最近尝试在我参与的游戏项目中引入TDD(测试驱动开发)的开发模式,因此单元测试便变得十分必要.这篇博客就来聊一聊这段时间的感悟和想法.由于游戏开发和传统软 ...
- 如何理解javaSript中函数的参数是按值传递
本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...