SpringBoot使用动态Banner
Spring Boot 2.0 提供了很多新特性,其中就有动态 Banner。
1、pom依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><groupId>com.example</groupId><artifactId>spring-boot-banner</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-boot-banner</name><description>spring-boot-banner</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
2、启动类
package com.example;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}
3、更换Banner
我们先来回顾一下在 Spring Boot 1.0 中如何更换启动 Banner,其实都很简单,只需要在
src/main/resources路径下新建一个banner.txt文件,banner.txt中填写好需要打印的字符串内容即可。
一般情况下,我们会借助第三方工具帮忙转化内容:
如网站http://www.network-science.de/ascii/将文字转化成字符串

如网站http://www.degraeve.com/img2txt.php可以将图片转化成字符串


我们以Hello World为启动字符串来进行测试:
.__           .__  .__                               .__       .___
|  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/
|  |  \_/ __ \|  | |  |  /  _ \  \ \/ \/ /  _ \_  __ \  |   / __ | 
|   Y  \  ___/|  |_|  |_(  <_> )  \     (  <_> )  | \/  |__/ /_/ | 
|___|  /\___  >____/____/\____/    \/\_/ \____/|__|  |____/\____ | \/     \/                                                  \/ 
在 Spring Boot 2.0 项目src/main/resources路径下新建一个banner.txt文件,粘贴上述字符串,启动 Spring
Boot 项目观察启动日志,发现 Spring Boot 2.0 已经将默认的 Spring 字符串替换为 hello world。说明 Spring
Boot 2.0 也支持1.0更换 Banner 的方法。
接下来在 Spring Boot 2.0 项目中测试打印动态 Banner ,使用的gif如下:

同样我们将 banner.gif 文件放到项目的src/main/resources路径下,启动项目进行测试,输出栏打印信息如
下:
                                           .,ijtjjjjtti,.                                           ijttttttjjttttttttji                                        ;tjttttttttttjjjjttjtjjjj;                                     jjtttttjttjtttttijjittjjttttjj.                                  .ijttttjittjjtttjtjjtttjtjtttjtjjjt.                                ijttttttjttjjttttjttitttttjijtjjttttji.          .:                  itttttttttjtttijjttttttttttjtttttjtjttttti         tt                  .jttttttttttjtjtttjjttttjtjjttjjtttttttjjttjj:       jt                  ,tttttttttttjttttjttjttjtjtjtttttjtjtttttjttttj;     ,tt,                 ;jtttttjttttttttitttttttttttttjttttttttttjjttjjtji    j:jt                 ,jttjjttttjtttjjtttjtjjtjttjijtitjjjttttttjtjtjjiti,  ij tt                 ttjjtttttttttttjttjjtttjtttjjtttjjtjtttjjttjjjtjtitttttj: .j,                tjjjittjtttttttjtjjtjtttttttttjjtjjtjttttttjjjjjtjjjtttt;   jt                itjttttjttttttjtttjttjttjttttjtjtjjtjjjjitijtttjtjjtjtttt    it                ;jtttjtttttttttttttttttttjttjtttttttjjjtttttjtjittjtjjttt     ,j:               jjtjtttttjttttttjttttttttjjtttttttttttjjjttiijtjtjttittj.      ji               ;tjtttttttttjtttttjttttttttjjjtjjtttttjjtjttttjtititjttt.       tj               ;tjjtjtttttttttttttttttttjtttttjjtttttjjtttjjjtjttjtjtjt         ,t               jittttjtttjtttttttttjttttjttttttjjttttjjtjtjijittjtttj;          .j.              tjtjtttttjttjttttjtttjttjtttttttitttttttjttjtttjtttjtt:            t:              :tttttttjtttttjttjjjjttttttttjjjtttttttttjttjjjjtttttj              ii              ttttjtjtttjjttjttttjttttttttttttjtttjjtttttttttjttjji               :j              ittttjtttjjttjtjtjttjtttjjttttjtttjttttttjtttttjtji                   j.             jtttttijtjjttjtjttitjtttttttttjijtjjjttttttttitjt:                    t,             ttttttttijjitttjjtjjtjtjtttttjjjttittjtttjtjjt,                       ji             ,tjjtttjtjjjjttjttijjtitttttttjtjtttttittjji,.                         tt             tjttjjjtjttititjtttttjjijjtjtjjtttii;,:.                               tj             jjjjjtjjjjtjttjjttijittjjj;:                                           ;j.            ,jjjtttttjtjttttttittjt:                                                :t,            ttijtjtjtjtjtjtttjjtj;                                          :        j;            jtttjtjjjtjtttttjtjt                                            .        ji            .tttjjjtjtjtttttttt,                                            ;         jt            :tttjtttttttjttttj                                              i         jj            ;ttjjtjijttjtjttj.                                             t.         tj.           ittjittjjttttttj.                                              t          tj.           tttjjjtjttttttj:                                              ;:          tj.           ttttttttittttti                                              .j           ij.           tjtjtjjttttttj.                                              jt           tj.           tjtjjjjttjjtj.                                             .jt            tj.           jttttttttjttj                                              tt;            tj.           tjtttjtttttjt                                             tjt             tj.           ttttttttjttt;                                             jt:             jt            iijjtttttttt.                                            jj;              jt            ;jtjtjtttjtj                                            tjj               ji            :tijjtjjtjjt                                          tjtj               ;j,            .jttttjtjiji                                         tttj;               tj.            jtjjtttttj;                                        ijtti                jj.            tttjtjttjj;                                      .tjtjt                 tt             ;jjjtttttji                                     :jtjji                 .ti             jtttttttjt                                    jjttj:                  tj.             ttttijtjjj                                  ;jtjjti                   jt              :jtttjtttt.                               ;tjtjtj;                   ij,              ttijtttjj;                             .tjttttj,                    jj.              jtjjtttttt                           ,tjttjjtj                     ttt               ;jttttttjt                         ijjtttjjtj                     :jjt               tjjjttjtti                   :ijjjtjjttjjt:                     :jjj                :ttttttttj,               ,ijttttjtjtijj,                       jtj;                tjtjttjtjj:          :;jjtjtjttitjttjt                        itjt                 ttjttttjtj;     .ijjttttjjttttttjji                         tjjt:                 ;ittjjtjtttj,tjjttjttttttttjjtjj,                          jtjjt                  ;tttjjtjttttjtttttjjtttttjt;                           .jjjjtt                   jttiji. ;ttjjjtttttttjt;                            :tjttttj                    ;tjjt     jtjjijtttj;                             ;jttttttti                    ijt:     jtitttji.                           :;jjjtjtttttt                     tj      jtttt::;iiitiitii;;;;,,,,,,,,;iitjjjttttjttjjttt.                     t      tjttttjjjtttttttjjjtttjtttjtttttjjjjttjtjtjjjtj.                      :     tittjtttjtjtjjjtjitttjtjttjjtjttjjtjjttjjtjtj,                        :  :jtttjtttjjjtttttttjtjtttttjjjtttjjjttjttjjtttt                         ,jttttjjtjjjjtitjtjttjjjtjtjttitjttjttttjjtjjjj;                          jjittjtjtjjjjjtttjtttjttjtttttjjttjjjtttttjt.                           ;ttijtjttjtjttttjjjtttttjjtjttijtjttttjtji                             itttjtjtjtttttttttjtttjjttjtjjjttttijt.                              .ijjtjttjjtjtjittttttittjjjjjjttttt.                                tjjtjjtjttjtjjtjtjttjtttjtjtjt.                                  ;jjttjjjtttittttitttttttji                                     itjjtttjjjtitttjtjji                                        .,ittjjjjtti,:                                 
通过上述输出我们发现 Spring Boot 在启动的时候,会将 gif 图片的每一个画面,按照顺序打印在日志中,所有的
画面打印完毕后,才会启动 Spring Boot 项目。
如果目录src/main/resources下同时存在banner.txt和banner.gif,项目会先将banner.gif每一个画面打
印完毕之后,再打印banner.txt中的内容。
项目的启动 Banner 有什么用呢,在一些大的组织或者公司中,可以利用这个特性定制自己专属的启动画面,增加
团队对品牌的认同感。