最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。
这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目:
还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈!
于是出于最初的好奇,研究了项目的源代码。看到了banner.txt文件,项目里面没有代码引用呀,于是发现了springboot的这个小确幸。上网学习和整理了一下相关的知识如下:
1 banner的使用
springboot启动时会加载默认的banner信息,控制台打印springboot启动相关信息。这个可以使用banner.txt重新定义banner信息。
#banner.txt文件内容
Application Version: ${bwscm.version}
Spring Boot Version: ${spring-boot.version}
_
(_)
__ _ _ __ _ __ _ __ _ _ _ __ _ __ _ _ __ __ _
/ _` | '_ \| '_ \ | '__| | | | '_ \| '_ \| | '_ \ / _` |
| (_| | |_) | |_) | | | | |_| | | | | | | | | | | | (_| |
\__,_| .__/| .__/ |_| \__,_|_| |_|_| |_|_|_| |_|\__, |
| | | | __/ |
|_| |_| |___/
文件内容可以参数化,参数可以使用application.yml里面的定义(如:bwscm.version),也可以使用springboot默认的属性参数(如:spring-boot.version)。
不要banner时,也可以关闭:
添加成功打印信息,也可以用banner:
非守护进程:
#keepRunning方法定义。
/**
* 阻塞main方法
* @throws InterruptedException
*/
private static void keepRunning() throws InterruptedException {
Thread t = Thread.currentThread();
synchronized(t) {
t.wait();
}
}
banner在线生成工具
https://www.bootschool.net/ascii
http://patorjk.com/software/taag/(我比较喜欢用这个)
优点:
- 切换字体以及输入文字的时候, 会自动输出banner字样。
- 在输出框中,是可编辑的,可以自己添加版本号,作者简介信息等。
- 直接copy输出框内容替换banner.txt内容。
banner的用途
那该如何给开源项目添加自定义的banner,提升逼格呢?比如以下自定义的banner:
所得和收获
上文提的,这个过程的收获,总结如下:
1、spring-boot做的真不错,连这么细小的细节的考虑的这么好,使用配置(banner.txt文件)即可替换。
2、最开始老师讲的真没错,java类的应用开发,还是要找到好轮子,不要闭门造车,重复造轮子。
3、保存好奇心很重要,这样才能知识常青,总是有所收获。
4、这些收获应该是比学会springboot的这点知识来说是更重要的所得吧。爱玩,好奇,对于技术人员也是很重要的。
臭味相投的朋友们,我在这里:
猿in小站:http://www.yuanin.net
csdn博客:https://blog.csdn.net/jiabeis
简书:https://www.jianshu.com/u/4cb7d664ec4b
微信免费订阅号“猿in”