1、简述
在 Spring Boot 项目中,当应用启动时会显示默认的 Spring 标志和版本信息。定制化的启动 Banner 不仅可以美化应用,还能在项目中增加个性化的品牌印记,甚至可以提供一些关键信息。本文将介绍如何在 Spring Boot 项目中自定义启动 Banner,以及如何使用工具生成自定义文本和图像 Banner。
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 项目添加一个有趣的、个性化的启动画面,让您的应用更具特色。
评论区