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

Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜

Spring Boot 更换 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路径下,启动项目进行测试,输出栏打印信息如下:



                                        ..
                                       .::*
                                        ...                                   

  .....                                                             ....
  ........                                                            .    ...
  ........                                                                . ..
  ......                                                                  ....
  ....                                                                     ...
  .                                                                          .

                                    ..**::**..
                                  .*::::::::::*.
                                 .*::::::::::::*.
                                 .*::::::::::::*.
                                 .*::::::::::::*.
                                  .*::::::::::*.
                                    ..**::***.                                

  ..
  .....                                                                     ..
  .....                                                                    ...
  ......                                                                ......
  . ...    .                                                             .....
  .       ....                                                             . .

                ............................   .............
              .................. .........       ................    .
          ...................                   ... . ... ............
       .............   . ...                             ...............
      .   .........                                         ...........
         ..........                                            ....... ....
        ............                                                ........
        ........                                                     ........
      .... .                                                        .........
     ........                                                        ........
   .........                       ..********..                      ......*..
  ........                      .**::::::::::::**.                    ........
  ...........                 .**::::::::::::::::**.                   .......
  ......                     .*::::::::::::::::::::*.                  .......
  ... ..                    .*::::::::::::::::::::::*.                 .......
  ......                    .::::::::::::::::::::::::.                 .......
  ..........                .::::::::::::::::::::::::.                ... ....
  .........                 .*:::::::::::::::::::::::.                    ....
  .........                 .*::::::::::::::::::::::*.                     ...
  .........                  .*::::::::::::::::::::*.                     ....
   ........                   .**::::::::::::::::**.                 .........
    ... ....                    .**::::::::::::**.                   .........
  . ........                        .********..                      .........
     ....... .                                                      ......*..
     .........                                                     .   .....
      .......                                                    .........
      ........     .                                          ............
      ............  ..                                        ...........
        . .............                                        .........
         ................                              ....   ..........
           ............. ....    .                   ......... . ..... .
            .... ...... .........       . .. .... .............. ....
              ..       .............  ...........  ..............             

                                ::.        .*:*
                             :.        *:*      *. .*:*
                          .:*.    *:   .*:*.       :.   .:
                      :* :     :.                .::::*    :
                    :  :    *         *****.....       *.:   :
                  :   : .:*         .::::::::::**..     ..  : *
                 :   *:           .*:::::::::::::::*.     *   **
                o  ***        ...**::::::::::::::::::**.   *   :.:
               : .* :    .....***::::::::::::::::::::::*.   :   : o
               :*.  *   ..*****:::::::::::::::::::::::::*.   *  :  o
               :   .   .*::::::::::::::::::::::::::::::::*.    ::   *
              :*   :   *::::::::::::::::::::::::::::::::::*     :   o
             * o  *   .*::::::::::::::::::::::::::::::::::*.   .:o  :
             :  : :   .*::::::::::::::::::::::::::::::::::*.   :  . :
             :  ..    .*::::::::::::::::::::::::::::::::::*.   *  : *
             :   :    .*::::::::::::::::::::::::::::::::::*   :   *:
             .   :*    .*o:::::::::::::::::::::::::::::::*.   .   :
              :  :  *   .*::::::::::::::::::::::::::::::*.   *   :*
               o *   :   .*::::::::::::::::::::::::::::*.    : ** :
                 :*   *    .*::::::::::::::::::::::::**.    *..  *
                  **   *    ..*::::::::::::::::::::*..     :*   *
                   * o  ..     ..**::::::::::::**..    .:. :   :
                    :   o.:        ...******...      *.   :  :.
                      :     ::o:.                *:     * *:
                        :.    :       .*:*.   :*    .*::
                           .:*  .*      *o:        .:
                                   .:*.        .*:                                          

        ...                                                                      

通过上述输出我们发现 Spring Boot 在启动的时候,会将 gif 图片的每一个画面,按照顺序打印在日志中,所有的画面打印完毕后,才会启动 Spring Boot 项目。

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

项目的启动 Banner 有什么用呢,在一些大的组织或者公司中,可以利用这个特性定制自己专属的启动画面,增加团队对品牌的认同感。

原文地址:https://www.cnblogs.com/ldsweely/p/9388022.html

时间: 2024-10-08 10:57:22

Spring Boot 2.0(一):Spring Boot 2.0尝鲜-动态 Banner的相关文章

Spring boot 2.0 新特性之动态 Banner

Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜. 配置依赖 使用 Spring Boot 2.0 首先需要将项目依赖包替换为刚刚发布的 2.0 RELEASE,现在网站https://start.spring.io/也将 Spring Boot 2.0 设置为默认版本. <parent> <groupId>org.springframework.boot</groupId> <artifactI

spring boot 2.0.3+spring cloud (Finchley)熔断器Hystrix

在分布式系统中服务与服务之间的依赖错综复杂,一种不可避免的情况就是某些服务会出现故障,导致依赖于他们的其他服务出现远程调度的线程阻塞.某个服务的单个点的请求故障会导致用户的请求处于阻塞状态,最终的结果是整个服务的线程资源消耗殆尽.由于服务的依赖性,会导致依赖于该故障服务的其他服务也处于线程阻塞状态,最终导致这些服务的线程资源消耗殆尽,知道不可用,从而导致整个服务系统不可用,即雪崩效应.为了防止雪崩效应,产生了熔断器模型. Hystrix是Netflix公司开源的一个项目,提供了熔断器功能,能阻止

spring boot 2.0.3+spring cloud (Finchley)7、微服务监控Spring Cloud Admin

参考:Spring Boot Admin 2.0 上手 Spring Boot Admin 用于管理和监控一个或多个Spring Boot程序,在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI,提供如下功能: 显示 name/id 和版本号 显示在线状态 Logging 日志级别管理 JMX beans 管理 Threads 会话和线程管理 Trace 应用请求跟踪 应用运行参数信息,如: Java 系统属性 Java 环境变量属性 内存信息 Spring 环

001-Spring Cloud Edgware.SR3 升级最新 Finchley.SR1,spring boot 1.5.9.RELEASE 升级2.0.4.RELEASE注意问题点

一.前提 升级前 => 升级后 Spring Boot 1.5.x => Spring Boot 2.0.4.RELEASE Spring Cloud Edgware SR3 => Spring Cloud Finchley.SR1 1.1.Eureka Server ureka Server 依赖更新 升级前: <dependency> <groupId>org.springframework.cloud</groupId> <artifact

spring boot 1.5.6版本整合LCN5.0

最新在更新LCN,由4.0更新到了5.0,这里说说更新遇到的问题,官方在5.0.1版本开始兼容了springboot1.5版本,但是整合的时候还是需要注意一些问题. 1.maven的引包需要改变,本人使用的是最新的5.0.2版本 <-- 下面两个包的版本号最好与springboot版本一致,在txlcn-tc中,引入了这两个包,并且版本号为2.0.5,该操作用于覆盖2.0.5版本的包 --> <dependency> <groupId>org.springframewo

如何使用Dubbo 2.7.0和Spring boot实现FAT测试(Feature Acceptance Test)

在一个调用链非常长的功能中,如果想修改其中的一个特性,并进行测试,而又不影响该环境的其他用户使用现有功能.特性,例如: 1. A.B.C.D之间通过Dubbo实现远程调用 2. 这些模块可能有一个或者多个实例 3. 此环境由多个人员(包括开发.测试)同时使用 此时若想修改B中的某个功能,增加一个特性(称为FAT1),并且也注册到此环境中,则会发生如下问题: 当其他的用户从使用此功能时,从A发起的调用可能会由于Dubbo带的负载均衡算法等原因,在带有FAT1和不带有FAT1的实例间来回切换,最后的

Spring Data JPA例子[基于Spring Boot、Mysql]

关于Spring Data Spring社区的一个顶级工程,主要用于简化数据(关系型&非关系型)访问,如果我们使用Spring Data来开发程序的话,那么可以省去很多低级别的数据访问操作,如编写数据查询语句.DAO类等,我们仅需要编写一些抽象接口并定义相关操作即可,Spring会在运行期间的时候创建代理实例来实现我们接口中定义的操作. 关于Spring Data子项目 Spring Data拥有很多子项目,除了Spring Data Jpa外,还有如下子项目. Spring Data Comm

spring cloud教程之使用spring boot创建一个应用

<7天学会spring cloud>第一天,熟悉spring boot,并使用spring boot创建一个应用. Spring Boot是Spring团队推出的新框架,它所使用的核心技术还是Spring框架,主要是Spring 4.x,所以如果熟悉spring 4的人,能够更快的接受和学会这个框架.Spring boot可以看做是在spring框架基础上再包了一层,这一层包含方便开发者进行配置管理和快速开发的模块,以及提供了一些开箱即用的工具,比如监控等. Spring Boot官方文档有中

初入spring boot(八 )Spring Data REST

1. 什么是Spring Data REST Spring Data JPA是基于Spring Data 的Repository之上,可以将Repository自动输出为REST资源.目前Spring Data REST支持将Spring Data JPA.Spring Data MongoDB.Spring Data Neo4j.Spring Data Gemfire以及Spring Data Cassandra的Repository自动转换成REST服务. 2. Spring mvc中配置使