SpringBoot更换Banner图

Posted 赵广陆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot更换Banner图相关的知识,希望对你有一定的参考价值。

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

        .   ____          _            __ _ _  
       /\\\\ / ___'_ __ _ _(_)_ __  __ _ \\ \\ \\ \\  
      ( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\  
       \\\\/  ___)| |_)| | | | | || (_| |  ) ) ) )  
        '  |____| .__|_| |_|_| |_\\__, | / / / /  
       =========|_|==============|___/=/_/_/_/  
       :: Spring Boot ::        (v1.3.3.RELEASE)  

Spring Boot 默认寻找 Banner 的顺序是:

  • 依次在 Classpath 下找 文件 banner.gif , banner.jpg , 和 banner.png , 先找到谁就用谁。
  • 继续 Classpath 下找 banner.txt
  • 上面都没有找到的话, 用默认的 SpringBootBanner 。

静态banner图

1. 第一种方式:修改的时候,进行设置,在Application的main方法中:

SpringApplication application = **new** SpringApplication(SpringbootTestApplication.class);
/*
* Banner.Mode.OFF:关闭;
* Banner.Mode.CONSOLE:控制台输出,默认方式;
* Banner.Mode.LOG:日志输出方式;
*/
application.setBannerMode(Banner.Mode.OFF);
application.run(args);

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

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

#这个是MANIFEST.MF文件中的版本号 
${application.version}              

#这个是上面的的版本号前面加v后上括号 
${application.formatted-version}

#这个是springboot的版本号 
${spring-boot.version}             

#这个是springboot的版本号 
${spring-boot.formatted-version}
字符串说明
${application.formatted-version}是上面的的版本号前面加v后上括号
${application.version}是MANIFEST.MF文件中的版本号
${spring-boot.version}springboot的版本号

3. 第四种方式:在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文件:

在这里插入图片描述

这里是两个做banner的网站

http://www.network-science.de/ascii/
http://patorjk.com/software/taag/

但是仅仅是这样看起来并不好看,还不如原来的图标好看呢。实际上Spring Boot为这个彩蛋提供了不少美化功能。
Spring Boot提供了一个枚举类AnsiColor ,这个类可以控制banner.txt中的字符颜色,而且非常容易使用。

类似 ${AnsiColor.BRIGHT_YELLOW} 这种表达式,其实可以放置多个,启动界面上的颜色,总是会根据AnsiColor 的设置改变界面的颜色,这样启动的界面就会显示多种不同的颜色了。

把以上信息通过${} 放入banner.txt中,就会打印出项目对应的信息。

`${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.gif 文件放到项目的src/main/resources路径下

在这里插入图片描述

如果目录src/main/resources下同时存在banner.txt和banner.gif,项目会先将banner.gif每一个画面打印完毕之后,再打印banner.txt中的内容。

以上是关于SpringBoot更换Banner图的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 2.0(一):Spring Boot 2.0尝鲜-动态 Banner

修改springboot启动图

springboot配置启动banner图

springboot 设置自定义启动背景图 教程

用了自定义Banner后,SpringBoot瞬间变的高大上了...

SpringBoot中的配置文件详解(ymlproperties全局配置和自定义配置有趣的banner图配置)