SpringBoot笔记插曲:自定义Banner

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lftaoyuan/article/details/80074216
  .   ____          _            __ _ _  
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \  
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )  
  '  |____| .__|_| |_|_| |_\__, | / / / /  
 =========|_|==============|___/=/_/_/_/  
 :: Spring Boot ::        (v1.4.2.RELEASE)  

该图案是在启动Spring Boot的时候在控制台输出的,包含当前使用的Spring Boot的版本,有的时候需要定制自己的Banner,也可能关闭输出Banner。

关闭banner

一般默认的启动方式是这样的

SpringApplication.run(StartApplication.class, args);

可以改成这样

SpringApplication springApplication = new SpringApplication(StartApplication.class);
springApplication.run(args);

对于应用级的操作就好操作了,比如关闭banner

SpringApplication springApplication = new SpringApplication(StartApplication.class);
// 关闭banner
springApplication.setBannerMode(Banner.Mode.OFF);
springApplication.run(args);

修改banner

要修改的话,首先看看Banner源码

package org.springframework.boot;

import java.io.PrintStream;
import org.springframework.core.env.Environment;

@FunctionalInterface
public interface Banner {
    void printBanner(Environment var1, Class<?> var2, PrintStream var3);

    public static enum Mode {
        OFF,
        CONSOLE,
        LOG;

        private Mode() {
        }
    }
}

Mode是个枚举,有3个类型分别代表
- 关闭
- 控制台输出
- 日志输出

Mode主要是改变输出类型的,那么printBanner你猜是干嘛的?

@SpringBootApplication
public class StartApplication {

    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(StartApplication.class);
        springApplication.setBanner((environment, sourceClass, out) -> out.println("" +
                "     ____.________________.___.\n" +
                "    |    |\\__    ___/\\__  |   |\n" +
                "    |    |  |    |    /   |   |\n" +
                "/\\__|    |  |    |    \\____   |\n" +
                "\\________|  |____|    / ______|\n" +
                "                      \\/       "));
        springApplication.run(args);

    }
}

图像可以根据以下网址生成的,复制到上面即可,上面用的java8的lambda表达式,也可以用传统的new

http://patorjk.com/software/taag/#p=display&f=Graffiti&t=JTY

注意,这个不是setBannerMode,是setBanner。

阅读更多

没有更多推荐了,返回首页