• Spring Boot Sample 002之spring-boot-banner


    一、环境

    • Idea 2020.1
    • JDK 1.8
    • maven

    二、目的

    学习Spring Boot Banner自定义的操作。

    三、步骤

    3.1、点击File -> New Project -> Spring Initializer,点击next

     3.2、在对应地方修改自己的项目信息

    3.3、选择Web依赖,选中Spring Web。可以选择Spring Boot版本,本次默认为2.2.6,点击Next

    3.4、编辑工程名和项目路径,确定后点击Finish完成

    3.5、项目结构

    四、自定义Spring Boot Banner

    4.1、方式一:默认配置

    在resources资源包下新建banner.txt,输入自定义内容。
    .__           .__  .__                               .__       .___
    |  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/
    |  |  _/ __ |  | |  |  /  _    / / /  _ _  __   |   / __ |
    |   Y    ___/|  |_|  |_(  <_> )       (  <_> )  | /  |__/ /_/ |
    |___|  /___  >____/____/____/    /_/ ____/|__|  |____/____ |
         /     /                                                  /
    
    spring-boot.version :  ${spring-boot.version}
    spring-boot.formatted-version :${spring-boot.formatted-version}
    启动程序后查看console输出
    "C:Program FilesJavajdk1.8.0_221binjava.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:D:ProgramsJetBrainsIntelliJ IDEAlibidea_rt.jar=3016:D:ProgramsJetBrainsIntelliJ IDEAbin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_221jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_221jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_221jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_221jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_221jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_221jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_221jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_221jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_221jrelibextnashorn.jar;C:Program FilesJavajdk1.8.0_221jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_221jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_221jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_221jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_221jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_221jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_221jrelibjce.jar;C:Program FilesJavajdk1.8.0_221jrelibjfr.jar;C:Program FilesJavajdk1.8.0_221jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_221jrelibjsse.jar;C:Program FilesJavajdk1.8.0_221jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_221jrelibplugin.jar;C:Program FilesJavajdk1.8.0_221jrelibresources.jar;C:Program FilesJavajdk1.8.0_221jrelibrt.jar;D:WorkSpaceIdeaouyushanouyushan-spring-boot-samplesspring-boot-bannertargetclasses;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-web2.2.6.RELEASEspring-boot-starter-web-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter2.2.6.RELEASEspring-boot-starter-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot2.2.6.RELEASEspring-boot-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-autoconfigure2.2.6.RELEASEspring-boot-autoconfigure-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-logging2.2.6.RELEASEspring-boot-starter-logging-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositorychqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;D:Programsapachemavenapache-maven-repositorychqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;D:Programsapachemavenapache-maven-repositoryorgapachelogginglog4jlog4j-to-slf4j2.12.1log4j-to-slf4j-2.12.1.jar;D:Programsapachemavenapache-maven-repositoryorgapachelogginglog4jlog4j-api2.12.1log4j-api-2.12.1.jar;D:Programsapachemavenapache-maven-repositoryorgslf4jjul-to-slf4j1.7.30jul-to-slf4j-1.7.30.jar;D:Programsapachemavenapache-maven-repositoryjakartaannotationjakarta.annotation-api1.3.5jakarta.annotation-api-1.3.5.jar;D:Programsapachemavenapache-maven-repositoryorgyamlsnakeyaml1.25snakeyaml-1.25.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-json2.2.6.RELEASEspring-boot-starter-json-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksoncorejackson-databind2.10.3jackson-databind-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksoncorejackson-annotations2.10.3jackson-annotations-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksoncorejackson-core2.10.3jackson-core-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksondatatypejackson-datatype-jdk82.10.3jackson-datatype-jdk8-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksondatatypejackson-datatype-jsr3102.10.3jackson-datatype-jsr310-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksonmodulejackson-module-parameter-names2.10.3jackson-module-parameter-names-2.10.3.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-tomcat2.2.6.RELEASEspring-boot-starter-tomcat-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgapachetomcatembedtomcat-embed-core9.0.33tomcat-embed-core-9.0.33.jar;D:Programsapachemavenapache-maven-repositoryorgapachetomcatembedtomcat-embed-el9.0.33tomcat-embed-el-9.0.33.jar;D:Programsapachemavenapache-maven-repositoryorgapachetomcatembedtomcat-embed-websocket9.0.33tomcat-embed-websocket-9.0.33.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-validation2.2.6.RELEASEspring-boot-starter-validation-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryjakartavalidationjakarta.validation-api2.0.2jakarta.validation-api-2.0.2.jar;D:Programsapachemavenapache-maven-repositoryorghibernatevalidatorhibernate-validator6.0.18.Finalhibernate-validator-6.0.18.Final.jar;D:Programsapachemavenapache-maven-repositoryorgjbossloggingjboss-logging3.4.1.Finaljboss-logging-3.4.1.Final.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmlclassmate1.5.1classmate-1.5.1.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-web5.2.5.RELEASEspring-web-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-beans5.2.5.RELEASEspring-beans-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-webmvc5.2.5.RELEASEspring-webmvc-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-aop5.2.5.RELEASEspring-aop-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-context5.2.5.RELEASEspring-context-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-expression5.2.5.RELEASEspring-expression-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgslf4jslf4j-api1.7.30slf4j-api-1.7.30.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-core5.2.5.RELEASEspring-core-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-jcl5.2.5.RELEASEspring-jcl-5.2.5.RELEASE.jar" org.ouyushan.springboot.banner.SpringBootBannerApplication
    .__           .__  .__                               .__       .___
    |  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/
    |  |  _/ __ |  | |  |  /  _    / / /  _ _  __   |   / __ |
    |   Y    ___/|  |_|  |_(  <_> )       (  <_> )  | /  |__/ /_/ |
    |___|  /___  >____/____/____/    /_/ ____/|__|  |____/____ |
         /     /                                                  /
    
    spring-boot.version :  2.2.6.RELEASE
    spring-boot.formatted-version : (v2.2.6.RELEASE)
    
    2020-04-27 10:37:31.150  INFO 8696 --- [           main] o.o.s.b.SpringBootBannerApplication      : Starting SpringBootBannerApplication

    4.2、方式二:自定义文本banner配置

    在application.properties配置文件中指定
    ## 指定文本文件位置 spring.banner.location=/txt/banner.txt 

    在resourcesz资源包中新建/txt/banner.txt文件,配置内容
    .__           .__  .__                               .__       .___
    |  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/
    |  |  _/ __ |  | |  |  /  _    / / /  _ _  __   |   / __ |
    |   Y    ___/|  |_|  |_(  <_> )       (  <_> )  | /  |__/ /_/ |
    |___|  /___  >____/____/____/    /_/ ____/|__|  |____/____ |
         /     /                                                  /
    
    指定banner位置:resource/txt
    spring-boot.version :  ${spring-boot.version}
    spring-boot.formatted-version :${spring-boot.formatted-version}
    启动项目后,console输出如下,此时自定义/txt/banner.txt会覆盖banner.txt
    "C:Program FilesJavajdk1.8.0_221binjava.exe" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:3230,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:C:UsersyangyanglleiAppDataLocalJetBrainsIntelliJIdea2020.1captureAgentdebugger-agent.jar -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_221jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_221jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_221jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_221jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_221jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_221jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_221jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_221jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_221jrelibextnashorn.jar;C:Program FilesJavajdk1.8.0_221jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_221jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_221jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_221jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_221jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_221jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_221jrelibjce.jar;C:Program FilesJavajdk1.8.0_221jrelibjfr.jar;C:Program FilesJavajdk1.8.0_221jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_221jrelibjsse.jar;C:Program FilesJavajdk1.8.0_221jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_221jrelibplugin.jar;C:Program FilesJavajdk1.8.0_221jrelibresources.jar;C:Program FilesJavajdk1.8.0_221jrelibrt.jar;D:WorkSpaceIdeaouyushanouyushan-spring-boot-samplesspring-boot-bannertargetclasses;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-web2.2.6.RELEASEspring-boot-starter-web-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter2.2.6.RELEASEspring-boot-starter-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot2.2.6.RELEASEspring-boot-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-autoconfigure2.2.6.RELEASEspring-boot-autoconfigure-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-logging2.2.6.RELEASEspring-boot-starter-logging-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositorychqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;D:Programsapachemavenapache-maven-repositorychqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;D:Programsapachemavenapache-maven-repositoryorgapachelogginglog4jlog4j-to-slf4j2.12.1log4j-to-slf4j-2.12.1.jar;D:Programsapachemavenapache-maven-repositoryorgapachelogginglog4jlog4j-api2.12.1log4j-api-2.12.1.jar;D:Programsapachemavenapache-maven-repositoryorgslf4jjul-to-slf4j1.7.30jul-to-slf4j-1.7.30.jar;D:Programsapachemavenapache-maven-repositoryjakartaannotationjakarta.annotation-api1.3.5jakarta.annotation-api-1.3.5.jar;D:Programsapachemavenapache-maven-repositoryorgyamlsnakeyaml1.25snakeyaml-1.25.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-json2.2.6.RELEASEspring-boot-starter-json-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksoncorejackson-databind2.10.3jackson-databind-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksoncorejackson-annotations2.10.3jackson-annotations-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksoncorejackson-core2.10.3jackson-core-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksondatatypejackson-datatype-jdk82.10.3jackson-datatype-jdk8-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksondatatypejackson-datatype-jsr3102.10.3jackson-datatype-jsr310-2.10.3.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmljacksonmodulejackson-module-parameter-names2.10.3jackson-module-parameter-names-2.10.3.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-tomcat2.2.6.RELEASEspring-boot-starter-tomcat-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgapachetomcatembedtomcat-embed-core9.0.33tomcat-embed-core-9.0.33.jar;D:Programsapachemavenapache-maven-repositoryorgapachetomcatembedtomcat-embed-el9.0.33tomcat-embed-el-9.0.33.jar;D:Programsapachemavenapache-maven-repositoryorgapachetomcatembedtomcat-embed-websocket9.0.33tomcat-embed-websocket-9.0.33.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkbootspring-boot-starter-validation2.2.6.RELEASEspring-boot-starter-validation-2.2.6.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryjakartavalidationjakarta.validation-api2.0.2jakarta.validation-api-2.0.2.jar;D:Programsapachemavenapache-maven-repositoryorghibernatevalidatorhibernate-validator6.0.18.Finalhibernate-validator-6.0.18.Final.jar;D:Programsapachemavenapache-maven-repositoryorgjbossloggingjboss-logging3.4.1.Finaljboss-logging-3.4.1.Final.jar;D:Programsapachemavenapache-maven-repositorycomfasterxmlclassmate1.5.1classmate-1.5.1.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-web5.2.5.RELEASEspring-web-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-beans5.2.5.RELEASEspring-beans-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-webmvc5.2.5.RELEASEspring-webmvc-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-aop5.2.5.RELEASEspring-aop-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-context5.2.5.RELEASEspring-context-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-expression5.2.5.RELEASEspring-expression-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgslf4jslf4j-api1.7.30slf4j-api-1.7.30.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-core5.2.5.RELEASEspring-core-5.2.5.RELEASE.jar;D:Programsapachemavenapache-maven-repositoryorgspringframeworkspring-jcl5.2.5.RELEASEspring-jcl-5.2.5.RELEASE.jar;D:ProgramsJetBrainsIntelliJ IDEAlibidea_rt.jar" org.ouyushan.springboot.banner.SpringBootBannerApplication
    Connected to the target VM, address: '127.0.0.1:3230', transport: 'socket'
    .__           .__  .__                               .__       .___
    |  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/
    |  |  _/ __ |  | |  |  /  _    / / /  _ _  __   |   / __ |
    |   Y    ___/|  |_|  |_(  <_> )       (  <_> )  | /  |__/ /_/ |
    |___|  /___  >____/____/____/    /_/ ____/|__|  |____/____ |
         /     /                                                  /
    
    指定banner位置:resource/txt
    spring-boot.version :  2.2.6.RELEASE
    spring-boot.formatted-version : (v2.2.6.RELEASE)
    
    

    4.3、方式三:自定义图片banner配置

     在application.properties配置文件中指定

    ## 指定文本文件位置
    # spring.banner.location=/txt/banner.txt
    
    ## 指定图片文件位置
    spring.banner.image.location=/image/banner.gif
     
    在resourcese资源包中新建/image,将下图命名为banner.gif后存入image目录
    启动项目后,console会逐贞输出gif图片

    五、知识点

    ## 1、项目名称:
    ```
    spring-boot-banner
    ```
    ## 2、相关概念:
    * spring boot banner 可以是文本也可以是动画,同时存在时动画优先于文本显示。
    * spring boot 启动时会默认从classpath中加载banner.txt,若存在则打印里面的内容。
    * banner.txt中可包含以下等变量:
    ```
    ${application.version}
    ${application.formatted-version}
    ${spring-boot.version}
    ${spring-boot.formatted-version}
    ${application.title}
    ```
    
    * 通过以下配置来指定banner文本文件的位置,默认在根目录下,如resources
    
    ```
    spring.banner.location=/txt/banner.txt
    ```
    
    * 通过以下配置来指定banner文本文件的编码,默认UTF-8
    ```
    spring.banner.charset
    ```
    
    * 支持的图片文件为banner.gif、banner.jpg和banner.png。图片文件会被转换为ASCII art,并优先于文本banner展示。
    * 通过以下配置来指定banner图像文件的位置,默认在根目录下,如resources
    ```
    spring.banner.image.location=/image/banner.gif
    ```
    
    * 通过以下配置来指定banner状态和级别,不配置时默认开启console
    ```
    # spring.main.banner-mode=console
    # spring.main.banner-mode=log
    ## 关闭banner
    # spring.main.banner-mode=off
    ```
    
    ## 3、sample实现
    * 文本banner
    在resources下新建文件banner.txt
    ```
    .__           .__  .__                               .__       .___
    |  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/
    |  |  _/ __ |  | |  |  /  _    / / /  _ _  __   |   / __ |
    |   Y    ___/|  |_|  |_(  <_> )       (  <_> )  | /  |__/ /_/ |
    |___|  /___  >____/____/____/    /_/ ____/|__|  |____/____ |
         /     /                                                  /
    
    spring-boot.version : ${spring-boot.version}
    spring-boot.formatted-version :${spring-boot.formatted-version}
    ```
    打印信息
    ```
    
    .__           .__  .__                               .__       .___
    |  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/
    |  |  _/ __ |  | |  |  /  _    / / /  _ _  __   |   / __ |
    |   Y    ___/|  |_|  |_(  <_> )       (  <_> )  | /  |__/ /_/ |
    |___|  /___  >____/____/____/    /_/ ____/|__|  |____/____ |
         /     /                                                  /
    
    spring-boot.version : 2.2.6.RELEASE
    spring-boot.formatted-version : (v2.2.6.RELEASE)
    ```
    
    * 图片banner
    在resources下保存spring官方banner.gif
  • 相关阅读:
    开始学习Angular Mobile UI
    .Net程序员飞扬有用的85个工具
    数据库查询效率,百万数据测试
    SQL Join的一些总结
    MODRD 指令 读取地址是哪儿来的
    如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?
    easyui datagrid 的分页刷新按钮
    HttpRequest Get Post,WebClient Get
    GetWindowThreadProcessId用法(转)
    EASYUI DATAGRID 多列复选框CheckBox
  • 原文地址:https://www.cnblogs.com/ouyushan/p/13023672.html
Copyright © 2020-2023  润新知