专业的编程技术博客社区

网站首页 > 博客文章 正文

SpringBoot应用搭建之输出Banner 还能这么玩

baijin 2024-08-15 00:38:15 博客文章 9 ℃ 0 评论

SpringBoot应用搭建之输出自己的Banner

SpringBoot为我们提供了多种Banner形式的支持,可以是gif、png、jpg、字符串等。

Springboot应用在启动的时候,会在Console中输出如下图形:

首先,我们可以控制关闭该图形的输出,关闭方法有两种:

  • 第一种,通过配置文件关闭
# 该参数有三个值:console :控制台 log:日志文件 off:不输出
spring.main.banner-mode = off
  • 第二种,通过代码关闭
package com.xtoad.study.baseinfo;

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 启动类
 *
 * @author xtoad
 * @date 2020/05/29
 */
@SpringBootApplication(scanBasePackages = {"com.xtoad.study"})
public class Application {

    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(Application.class);
        // banner输出方式
        springApplication.setBannerMode(Banner.Mode.OFF);
        springApplication.run(args);
    }

}

其次,我们可以自定义Banner:

SpringBoot为我们提供了多种Banner形式的支持,可以是gif、png、jpg、字符串等。

其中字符串形式的banner可以自己拼,也可以在网上用专门生成banner的工具。搜索 ascii字符画生成器,很多在线工具。

SpringBoot应用启动时会先显示ImageBanner, 而后就是 TextBanner 若是都没有就显示默认的Banner:

  1. 优先看配置文件有没有配置 spirng.banner.image.location 若是有就走配置文件的内容
  2. 如果第一步没有,在Classpath下找文件banner.gif、banner.jpg、banner.png,先找到谁就用谁
  3. 如果第二步没有,继续Classpath下找banner.txt,或者你有定义配置项:banner.location,会去Classpath下找这个配置值的文件
  4. 上面都没有找到的话,用默认的SpringBootBanner

因此,第一种自定义Banner方式,直接建立一个banner文件放在我们的resources目录下即可:

运行代码:

关于图片banner 的相关配置项可参照下图:

如果你使用的是banner.txt,那么你还可以使用如下的占位符:

  • ${application.version}
  • ${application.formatted-version}
  • ${spring-boot.version}
  • ${spring-boot.formatted-version}
  • Ansi.NAME(orAnsi.NAME(or{AnsiColor.NAME}
  • ${AnsiBackground.NAME}
  • ${AnsiStyle.NAME})
  • ${application.title}

第二种方式,我们可以编程实现,可以创一个类实现Banner接口,重写printBanner方法:

这里我用匿名类实现:

package com.xtoad.study.baseinfo;

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;

import java.io.PrintStream;

/**
 * 启动类
 *
 * @author xtoad
 * @date 2020/05/29
 */
@SpringBootApplication(scanBasePackages = {"com.xtoad.study"})
public class Application {

    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(Application.class);
        springApplication.setBanner(new Banner() {
            @Override
            public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
                out.println("*********************************");
                out.println("我要自定义Banner");
                out.println("*********************************");
            }
        });
        // banner输出方式
        springApplication.setBannerMode(Banner.Mode.CONSOLE);
        springApplication.run(args);
    }

}

运行效果如下:

最后,推荐使用简单的方式,直接放一个banner.txt在我们的resources下即可!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表