SpringBoot的Banner


一 官方文檔介紹

1 自定義橫幅

通過在 classpath 中添加banner.txt文件或將banner.location設置為此類文件的位置,可以更改啟動時打印的橫幅。如果文件具有異常編碼,則可以設置banner.charset(默認為UTF-8)。除了文本文件,您還可以將banner.gifbanner.jpgbanner.png圖像文件添加到 classpath,或設置banner.image.location property。圖像將轉換為 ASCII 藝術表示並打印在任何文本橫幅上方。

banner.txt文件中,您可以使用以下任何占位符:

表格 1_.橫幅變量

變量 描述
${application.version} MANIFEST.MF中聲明的 application 的 version number。對於 example Implementation-Version: 1.0打印為1.0
${application.formatted-version} MANIFEST.MF中聲明的 application 的 version number 用於顯示(用括號括起來並以v為前綴)。對於 example (v1.0)
${spring-boot.version} 您正在使用的 Spring Boot version。對於 example 1.5.9.RELEASE
${spring-boot.formatted-version} 正在使用的 Spring Boot version 格式化顯示(用括號括起來並以v為前綴)。對於 example (v1.5.9.RELEASE)
${Ansi.NAME}(或${AnsiColor.NAME}${AnsiBackground.NAME}${AnsiStyle.NAME}) 其中NAME是 ANSI 轉義 code 的 name。有關詳細信息,請參閱AnsiPropertySource
${application.title} MANIFEST.MF中聲明的 application 的標題。對於 example Implementation-Title: MyApp打印為MyApp

如果要以編程方式生成橫幅,可以使用SpringApplication.setBanner(…)方法。使用org.springframework.boot.Banner接口並實現自己的printBanner()方法。

您還可以使用spring.main.banner-mode property 來確定是否必須使用已配置的 logger(log)或根本不使用(off)在System.out(console)上打印橫幅。

打印的橫幅將在 name springBootBanner下注冊為 singleton bean。

YAML maps offfalse所以如果要在 application 中禁用橫幅,請務必添加引號。

spring:
   main:
       banner-mode: "off"

2 自定義 SpringApplication

如果SpringApplication默認值不符合您的口味,您可以改為創建本地實例並對其進行自定義。例如,要關閉您要寫的橫幅:

public static void main(String[] args) {
    SpringApplication app = new SpringApplication(MySpringConfiguration.class);
    app.setBannerMode(Banner.Mode.OFF);
    app.run(args);
}

 

傳遞給SpringApplication的構造函數 arguments 是 spring beans 的 configuration 源。在大多數情況下,這些將是@Configuration classes 的 references,但它們也可以是 XML configuration 或應掃描的包的 reference。

也可以使用application.properties文件配置SpringApplication

二 測試

  • 自定義Banner

application.properties

spring.banner.location=banner.txt

banner.txt

                    !                    
                   /^\                   
                 /     \                 
 |            | (       ) |            | 
/^\  |       /^\ \     / /^\       |  /^\
|O| /^\     (   )|-----|(   )     /^\ |O|
|_| |-| |^-^|---||-----||---|^-^| |-| |_|
|O| |O| |/^\|/^\||  |  ||/^\|/^\| |O| |O|
|-| |-| ||_|||_||| /^\ |||_|||_|| |-| |-|
|O| |O| |/^\|/^\||(   )||/^\|/^\| |O| |O|
|-| |-| ||_|||_||||   ||||_|||_|| |-| |-|

 

啟動

                 !                    
                   /^\                   
                 /     \                 
 |            | (       ) |            | 
/^\  |       /^\ \     / /^\       |  /^\
|O| /^\     (   )|-----|(   )     /^\ |O|
|_| |-| |^-^|---||-----||---|^-^| |-| |_|
|O| |O| |/^\|/^\||  |  ||/^\|/^\| |O| |O|
|-| |-| ||_|||_||| /^\ |||_|||_|| |-| |-|
|O| |O| |/^\|/^\||(   )||/^\|/^\| |O| |O|
|-| |-| ||_|||_||||   ||||_|||_|| |-| |-|
2019-10-28 22:19:03.614  INFO 18192 --- [           main] com.example.demo.TestApplication         : Starting TestApplication on WGR-PC with PID 18192 (E:\STSWorkspace\test\target\classes started by asus in E:\STSWorkspace\test)
2019-10-28 22:19:03.614  INFO 18192 --- [           main] com.example.demo.TestApplication         : No active profile set, falling back to default profiles: default
2019-10-28 22:19:04.394  INFO 18192 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-10-28 22:19:04.432  INFO 18192 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]

 

  • 關閉Banner

spring.main.banner-mode=off
  • 帶枚舉

    更換Banner相對於隱藏要簡單一些,我們只需要在src/main/resource下添加一個名叫banner.txt的文件,將需要修改的內容寫入到該文件內就可以了,具體Banner內容如下所示:

    ${AnsiColor.BRIGHT_RED}                      !                      天地山青   ${AnsiColor.BRIGHT_YELLOW}                      !
    ${AnsiColor.BRIGHT_RED}                     /^\                        ${AnsiColor.BRIGHT_YELLOW}道法無常                     /^\
    ${AnsiColor.BRIGHT_RED}                   /     \                   天地無極   ${AnsiColor.BRIGHT_YELLOW}                   /     \
    ${AnsiColor.BRIGHT_RED}   |            | (       ) |            |      ${AnsiColor.BRIGHT_YELLOW}乾坤戒法   |            | (       ) |            |
    ${AnsiColor.BRIGHT_RED}  /^\  |       /^\ \     / /^\       |  /^\  元陽入體   ${AnsiColor.BRIGHT_YELLOW}  /^\  |       /^\ \     / /^\       |  /^\
    ${AnsiColor.BRIGHT_RED}  |O| /^\     (   )|-----|(   )     /^\ |O|     ${AnsiColor.BRIGHT_YELLOW}五毒不侵  |O| /^\     (   )|-----|(   )     /^\ |O|
    ${AnsiColor.BRIGHT_RED}  |_| |-| |^-^|---||-----||---|^-^| |-| |_|  九陽之體   ${AnsiColor.BRIGHT_YELLOW}  |_| |-| |^-^|---||-----||---|^-^| |-| |_|
    ${AnsiColor.BRIGHT_RED}  |O| |O| |/^\|/^\||  |  ||/^\|/^\| |O| |O|     ${AnsiColor.BRIGHT_YELLOW}化緣神功  |O| |O| |/^\|/^\||  |  ||/^\|/^\| |O| |O|
    ${AnsiColor.BRIGHT_RED}  |-| |-| ||_|||_||| /^\ |||_|||_|| |-| |-|  邪魔退散   ${AnsiColor.BRIGHT_YELLOW}  |-| |-| ||_|||_||| /^\ |||_|||_|| |-| |-|
    ${AnsiColor.BRIGHT_RED}  |O| |O| |/^\|/^\||(   )||/^\|/^\| |O| |O|     ${AnsiColor.BRIGHT_YELLOW}永不宕機  |O| |O| |/^\|/^\||(   )||/^\|/^\| |O| |O|
    ${AnsiColor.BRIGHT_RED}  |-| |-| ||_|||_||||   ||||_|||_|| |-| |-|  永無八哥   ${AnsiColor.BRIGHT_YELLOW}  |-| |-| ||_|||_||||   ||||_|||_|| |-| |-|
    ${AnsiColor.BRIGHT_CYAN}

     

    在上面有一些屬性配置,如${AnsiColor.BRIGHT_RED},這些配置都位於`org.springframework.boot.ansi.AnsiColor枚舉內,用於配置的是輸出的顏色。可配置內容如下所示:

      
      DEFAULT("39"),
        BLACK("30"),
        RED("31"),
        GREEN("32"),
        YELLOW("33"),
        BLUE("34"),
        MAGENTA("35"),
        CYAN("36"),
        WHITE("37"),
        BRIGHT_BLACK("90"),
        BRIGHT_RED("91"),
        BRIGHT_GREEN("92"),
        BRIGHT_YELLOW("93"),
        BRIGHT_BLUE("94"),
        BRIGHT_MAGENTA("95"),
        BRIGHT_CYAN("96"),
        BRIGHT_WHITE("97");

     

    這個配置是針對文字的顏色,當然還有背景顏色的配置,位於org.springframework.boot.ansi.AnsiBackground枚舉內,可配置的內容如下所示:

      
     DEFAULT("49"),
        BLACK("40"),
        RED("41"),
        GREEN("42"),
        YELLOW("43"),
        BLUE("44"),
        MAGENTA("45"),
        CYAN("46"),
        WHITE("47"),
        BRIGHT_BLACK("100"),
        BRIGHT_RED("101"),
        BRIGHT_GREEN("102"),
        BRIGHT_YELLOW("103"),
        BRIGHT_BLUE("104"),
        BRIGHT_MAGENTA("105"),
        BRIGHT_CYAN("106"),
        BRIGHT_WHITE("107");

     

    具體的banner.txt的內容可根據自己的愛好進行配置

                          !                      天地山青                         !
                         /^\                        道法無常                     /^\
                       /     \                   天地無極                      /     \
       |            | (       ) |            |      乾坤戒法   |            | (       ) |            |
      /^\  |       /^\ \     / /^\       |  /^\  元陽入體     /^\  |       /^\ \     / /^\       |  /^\
      |O| /^\     (   )|-----|(   )     /^\ |O|     五毒不侵  |O| /^\     (   )|-----|(   )     /^\ |O|
      |_| |-| |^-^|---||-----||---|^-^| |-| |_|  九陽之體     |_| |-| |^-^|---||-----||---|^-^| |-| |_|
      |O| |O| |/^\|/^\||  |  ||/^\|/^\| |O| |O|     化緣神功  |O| |O| |/^\|/^\||  |  ||/^\|/^\| |O| |O|
      |-| |-| ||_|||_||| /^\ |||_|||_|| |-| |-|  邪魔退散     |-| |-| ||_|||_||| /^\ |||_|||_|| |-| |-|
      |O| |O| |/^\|/^\||(   )||/^\|/^\| |O| |O|     永不宕機  |O| |O| |/^\|/^\||(   )||/^\|/^\| |O| |O|
      |-| |-| ||_|||_||||   ||||_|||_|| |-| |-|  永無八哥     |-| |-| ||_|||_||||   ||||_|||_|| |-| |-|2019-10-28 22:26:50.213  INFO 18256 --- [           main] com.example.demo.TestApplication         : Starting TestApplication on WGR-PC with PID 18256 (E:\STSWorkspace\test\target\classes started by asus in E:\STSWorkspace\test)
    2019-10-28 22:26:50.215  INFO 18256 --- [           main] com.example.demo.TestApplication         : No active profile set, falling back to default profiles: default
    2019-10-28 22:26:51.140  INFO 18256 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
    2019-10-28 22:26:51.171  INFO 18256 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]

     

     

  •  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM