侧边栏壁纸
博主头像
拾荒的小海螺博主等级

只有想不到的,没有做不到的

  • 累计撰写 194 篇文章
  • 累计创建 19 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

JAVA:Spring Boot 项目中自定义 Banner 的技术指南

拾荒的小海螺
2024-11-19 / 0 评论 / 1 点赞 / 12 阅读 / 5963 字

1、简述

在 Spring Boot 项目中,当应用启动时会显示默认的 Spring 标志和版本信息。定制化的启动 Banner 不仅可以美化应用,还能在项目中增加个性化的品牌印记,甚至可以提供一些关键信息。本文将介绍如何在 Spring Boot 项目中自定义启动 Banner,以及如何使用工具生成自定义文本和图像 Banner。

image-xvmf.png

2、Spring Boot 默认 Banner

Spring Boot 默认的 Banner 位于 org/springframework/boot 包内的 spring-boot.jar 中。默认 Banner 只显示了 Spring 标志、版本和应用名称信息,效果如下:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.5.4)

3、自定义 Banner

Spring Boot 支持三种方式来定制 Banner:

  • 文本文件(ASCII Art):通过 banner.txt 文件设置 ASCII Art。
  • 图片文件:通过 banner.jpg、banner.png 或 banner.gif 设置图片。
  • 编程方式:通过编写 Java 代码自定义 Banner。

3.1 使用 banner.txt 定义 ASCII Art

最简单的方法是创建一个 banner.txt 文件并放置在 src/main/resources 目录中。启动应用时,Spring Boot 会自动加载该文件内容并替代默认 Banner。

实践步骤:

  • 在 src/main/resources 中创建 banner.txt 文件。
  • 编写 ASCII 文本图案。可以使用 Banner Generator 等工具生成自定义字符。

例如,将生成的 Banner 粘贴到 banner.txt 中:

  ____            _         _   ____             _  
 | __ ) _   _ ___| |_ _   _| | | __ )  __ _  ___| | __  
 |  _ \| | | / __| __| | | | | |  _ \ / _` |/ __| |/ /  
 | |_) | |_| \__ \ |_| |_| | | | |_) | (_| | (__|   <   
 |____/ \__,_|___/\__|\__,_|_| |____/ \__,_|\___|_|\_\  

在 Spring Boot 启动时,将显示此自定义 ASCII 文本。

3.2 使用图片作为 Banner

Spring Boot 支持使用图片作为 Banner。图片文件的格式可以是 PNG、GIF 或 JPG,系统会在启动时将图片渲染成 ASCII 格式。具体支持的图片格式为黑白图像。

实践步骤:

  • 将 banner.png、banner.jpg 或 banner.gif 图片文件放在 src/main/resources 中。
  • 启动项目,Spring Boot 会自动加载并显示图片的 ASCII 版本。

图片生成推荐工具
可以使用 Image to ASCII 这类工具生成黑白图片,将其导出为 PNG 或 JPG 格式,并命名为 banner.png。

3.3 通过编程方式自定义 Banner

如果希望在启动过程中动态设置 Banner,还可以通过 Java 代码实现。实现 Banner 接口来自定义 Banner,并将其注册到 Spring Boot 应用中。

  • 创建一个实现 org.springframework.boot.Banner 接口的类:
package com.example.demo;

import org.springframework.boot.Banner;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

import java.io.PrintStream;

@Component
public class CustomBanner implements Banner {
    @Override
    public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
        out.println("=================================");
        out.println("   Welcome to My Spring Boot App ");
        out.println("=================================");
    }
}
  • 在 SpringApplication 中设置自定义 Banner:
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(DemoApplication.class);
        app.setBanner(new CustomBanner());
        app.run(args);
    }
}

在启动应用时,将会显示 CustomBanner 中的内容。

4、配置 Banner

Spring Boot 允许在 application.properties 文件中设置 Banner 的显示位置和字体颜色。

4.1 设置 Banner 显示模式

可以通过 spring.main.banner-mode 属性来设置 Banner 的显示模式:

spring.main.banner-mode=console
  • console:在控制台打印 Banner(默认值)。
  • log:将 Banner 打印到日志文件。
  • off:禁用 Banner。

4.2 设置字体颜色

要为 Banner 设置颜色,可以通过 ANSI 转义代码自定义字体颜色。例如:

${AnsiColor.RED}Welcome to My Spring Boot App${AnsiColor.DEFAULT}

将这段内容写入 banner.txt,即可在控制台中显示红色的文本。常用颜色代码:

  • ${AnsiColor.BLACK}
  • ${AnsiColor.RED}
  • ${AnsiColor.GREEN}
  • ${AnsiColor.YELLOW}
  • ${AnsiColor.BLUE}
  • ${AnsiColor.MAGENTA}
  • ${AnsiColor.CYAN}
  • ${AnsiColor.WHITE}

注意: ANSI 颜色在部分控制台中可能不支持。

5、总结

以下是在 Spring Boot 项目中自定义 Banner 的完整操作步骤:

  • 使用 ASCII Art 定义 Banner:在 src/main/resources/banner.txt 中添加 ASCII Art 内容。
  • 使用图片作为 Banner:将黑白图片文件(如 banner.png)放置到 src/main/resources 中。
  • 通过编程方式自定义 Banner:实现 Banner 接口,并在 SpringApplication 中注册。
  • 在 application.properties 中配置:选择 Banner 显示模式和字体颜色。

通过本文的方法,您可以为 Spring Boot 项目添加一个有趣的、个性化的启动画面,让您的应用更具特色。

1

评论区