美文网首页程序员我爱编程
SpringBoot笔记插曲:自定义Banner

SpringBoot笔记插曲:自定义Banner

作者: 世外大帝 | 来源:发表于2018-04-25 15:26 被阅读12次
  .   ____          _            __ _ _  
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \  
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )  
  '  |____| .__|_| |_|_| |_\__, | / / / /  
 =========|_|==============|___/=/_/_/_/  
 :: 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。

相关文章

网友评论

  • IT人故事会:贵在坚持,么么哒!我也是个爱写文章的人
    世外大帝:@IT人故事会 好样的:+1: 向你学习
    IT人故事会:@世外大帝 一直在用,现在学习docker了
    世外大帝:记得第一篇的时候你就评论了,我的学习进度还可以吧,你学的咋样了

本文标题:SpringBoot笔记插曲:自定义Banner

本文链接:https://www.haomeiwen.com/subject/bnkylftx.html