一、前言
启动spring boot的时候,控制台打印图案为:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.1.RELEASE)
二、如果不想看到这个图案该如何做
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.Banner;
@SpringBootApplication
public static void main(String[] args) {
SpringApplication application=new SpringApplication(Application.class);
// 设置banner的模式为隐藏,默认为Banner.Mode.CONSOLE
/** 有三种模式可供配置:
* Disable printing of the banner. OFF
* Print the banner to System.out. CONSOLE
* Print the banner to the log file. LOG
*/
application.setBannerMode(Banner.Mode.OFF);
// 启动springboot应用程序
application.run(args);
}
三、如何改动
Banner是SpringBoot框架一个特色的部分,其设计的目的无非就是一个框架的标识,其中包含了版本号、框架名称等内容,既然SpringBoot为我们提供了这个模块,它肯定也是可以更换的这也是Spring开源框架的设计理念。比如想输出自己的项目名、自己的名字、靓照等等。
1.Spring Boot 1.0 :
我们先来回顾一下在 Spring Boot 1.0 中如何更换启动 Banner,其实都很简单,只需要在src/main/resources路径下新建一个banner.txt文件,banner.txt中填写好需要打印的字符串内容即可,Spring Boot启动项目的时候就会优先启动这个文件中的内容。
一般情况下,我们会借助第三方工具帮忙转化内容,如网站ASCII Generator将文字转化成字符串,网站:http://www.degraeve.com/img2txt.php 可以将图片转化成字符串。比如:
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 永无BUG
2.控制banner样式:
3.Spring Boot 2.0 :
Spring Boot 2.0 也支持1.0更换 Banner 的方法。并且还支持打印动态 Banner ,使用的gif如下:
同样我们将 banner.gif 文件放到项目的src/main/resources路径下,启动项目会将 gif 图片的每一个画面,按照顺序打印在日志中,所有的画面打印完毕后,才会启动 Spring Boot 项目。
如果目录src/main/resources下同时存在banner.txt和banner.gif,项目会先将banner.gif每一个画面打印完毕之后,再打印banner.txt中的内容。
项目的启动 Banner 有什么用呢,在一些大的组织或者公司中,可以利用这个特性定制自己专属的启动画面,增加团队对品牌的认同感。