(28)SpringBoot启动时的Banner设置【从零开始学Spring Boot】

对于使用过Spring Boot的开发者来说,程序启动的时候输出的由字符组成的Spring符号并不陌生。这个是Spring Boot为自己设计的Banner:

1.    .   ____          _            __ _ _  

2.   /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \  

3.  ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  

4.   \\/  ___)| |_)| | | | | || (_| |  ) ) ) )  

5.    '  |____| .__|_| |_|_| |_\__, | / / / /  

6.   =========|_|==============|___/=/_/_/_/  

7.   :: Spring Boot ::        (v1.3.3.RELEASE)  

如果有人不喜欢这个输出,本文说一下怎么修改。

 

第一种方式:修改的时候,进行设置,Applicationmain方法中:

SpringApplication application = new SpringApplication(App.class);

        /*

         * Banner.Mode.OFF:关闭;

         * Banner.Mode.CONSOLE:控制台输出,默认方式;

         * Banner.Mode.LOG:日志输出方式;

         */

         application.setBannerMode(Banner.Mode.OFF); 

         application.run(args); 

 

 

第二种方式:修改banner.txt配置文件

src/main/resouces下新建banner.txt,在文件中加入:

#这个是MANIFEST.MF文件中的版本号 

${application.version}              

 

#这个是上面的的版本号前面加v后上括号 

${application.formatted-version}

 

#这个是springboot的版本号 

${spring-boot.version}             

 

#这个是springboot的版本号 

${spring-boot.formatted-version}

 

第三种方式:重写接口Banner实现

SpringBoot提供了一个接口org.springframework.boot.Banner,他的实例可以被传给SpringApplication的setBanner(banner)方法。如果你闲得不行非要着重美化这个命令行输出的话,可以重写Banner接口的printBanner方法。

 

 

第四种方式:在application.properties进行配置

       application.proerpties进行banner的显示和关闭:

### 是否显示banner,可选值[true|false]

spring.main.show-banner=false

 





使用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.output.ansi.enabled=ALWAYS





在2016年的最后一天,借用Spring Boot的Banner向各位程序猿同仁们问候一声:Happy New Year。

接下来我们就来介绍一下这个轻松愉快的自定义banner功能。实现的方式非常简单,我们只需要在Spring Boot工程的/src/main/resources目录下创建一个banner.txt文件,然后将ASCII字符画复制进去,就能替换默认的banner了。比如上图中的输出,就采用了下面的banner.txt内容:

     
     
1
2
3
4
5
6
7
8
9
10
11
12
13
     
     
${AnsiColor.BRIGHT_GREEN}
## ## ### ######## ######## ## ## ## ## ######## ## ## ## ## ######## ### ########
## ## ## ## ## ## ## ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## #### #### ## ## ## ## ## #### ## ## ## ## ##
######### ## ## ######## ######## ## ## ## ## ###### ## ## ## ## ###### ## ## ########
## ## ######### ## ## ## ## #### ## ## ## ## ## ## ######### ## ##
## ## ## ## ## ## ## ## ### ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ######## ### ### ## ######## ## ## ## ##
${AnsiColor.BRIGHT_RED}
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}

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

  • ${AnsiColor.BRIGHT_RED}:设置控制台中输出内容的颜色
  • ${application.version}:用来获取MANIFEST.MF文件中的版本号
  • ${application.formatted-version}:格式化后的${application.version}版本信息
  • ${spring-boot.version}:Spring Boot的版本号
  • ${spring-boot.formatted-version}:格式化后的${spring-boot.version}版本信息

生成工具

如果让我们手工的来编辑这些字符画,显然是一件非常困难的差事。所以,我们可以借助下面这些工具,轻松地根据文字或图片来生成用于Banner输出的字符画。

年终彩蛋

最后,奉上程序猿必备Banner “永不宕机佛祖”,祝大家:“新年快乐、永不宕机、永无Bug”!

     
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
     
     
${AnsiColor.BRIGHT_YELLOW}
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕机 永无BUG //

效果图:

 本文由  程序猿DD-翟永超 创作,采用  CC BY 3.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。


  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值