Spring Boot 自定义商标(Logo)的完整示例及配置说明
1. Spring Boot 商标(Banner)功能概述
Spring Boot 在启动时会显示一个 ASCII 艺术的商标 LOGO(默认为 Spring 的标志)。开发者可通过以下方式自定义:
- 替换
banner.txt
文件:放置自定义的 ASCII 图案。 - 配置属性:修改商标文件路径、编码、显示模式等。
2. 自定义商标的完整步骤
步骤1:创建自定义 banner.txt
文件
在项目 src/main/resources
目录下创建或替换 banner.txt
文件,内容示例:
_____ _ _ _ _ _
| |___ _| |___ ___ ___ _ _|_| |_| |_| |_
| | | | . | . | -_| | _| | | | . | | | _|
|_|_|_|___|___|___|_|_|___|_|_|_|___|_|_|_|
步骤2:配置 application.properties
或 application.yml
通过以下属性自定义商标行为:
3. 配置属性详解
(1) spring.banner.location
作用:指定商标文件的路径,默认为 classpath:banner.txt
。
- 示例:
# 指定自定义路径(如 resources/my-banner.txt) spring.banner.location=classpath:my-banner.txt
(2) spring.banner.charset
作用:设置商标文件的字符编码,默认为 UTF-8
。
- 示例:
# 若文件使用 GBK 编码 spring.banner.charset=GBK
(3) spring.main.banner-mode
作用:控制商标的显示方式,默认为 console
(控制台输出)。
-
可选值:
console
:在控制台输出(默认)。log
:以日志形式输出(日志级别为 INFO)。off
:禁用商标显示。
-
示例:
# 将商标输出到日志 spring.main.banner-mode=log
4. 完整配置示例
(1) application.properties
配置
# 自定义商标文件路径
spring.banner.location=classpath:my_banner.txt
# 文件编码(如需非 UTF-8)
spring.banner.charset=UTF-8
# 商标输出模式(控制台或日志)
spring.main.banner-mode=log
(2) application.yml
配置
spring:
banner:
location: classpath:custom_banner.txt
charset: UTF-8
main:
banner-mode: log
5. 自定义 banner.txt
文件技巧
-
ASCII 艺术生成:可通过在线工具(如 ASCII Art Generator)生成图案。
-
多行支持:直接换行即可,无需特殊符号。
-
颜色支持:通过 ANSI 转义码添加颜色(需确保控制台支持):
\033[31m _____ _ _ _ _ _ \033[0m \033[34m | |___ _| |___ ___ ___ _ _|_| |_| |_| |_| \033[0m \033[32m | | | | . | . | -_| | _| | | | . | | | _ \033[0m \033[33m |_|_|_|___|___|___|_|_|___|_|_|_|___|_|_|_| \033[0m
\033[31m
:红色\033[34m
:蓝色\033[0m
:重置颜色
6. 禁用商标输出
若需完全禁用商标:
spring.main.banner-mode=off
7. 高级配置:动态生成商标
通过实现 Banner
接口动态生成商标内容:
import org.springframework.boot.Banner;
import org.springframework.core.env.Environment;
public class CustomBanner implements Banner {
@Override
public void printBanner(Environment environment, Class<?> source) {
System.out.println("Custom Banner:");
System.out.println(" _____ _ _ _ _ _ ");
System.out.println("| |___ _| |___ ___ ___ _ _|_| |_| |_| |_");
// 其他行...
}
}
在 application.properties
中指定:
spring.main.banner=CustomBanner
8. 对比表格:配置属性总结
属性 | 描述 | 默认值 | 示例 |
---|---|---|---|
spring.banner.location | 自定义商标文件路径(支持 classpath: , file: , http:// 等) | classpath:banner.txt | classpath:my_banner.txt |
spring.banner.charset | 文件编码格式 | UTF-8 | GBK |
spring.main.banner-mode | 商标显示模式(console , log , off ) | console | log |
9. 完整示例代码结构
项目目录结构:
src/
└── main/
└── resources/
├── banner.txt # 默认商标文件
└── custom_banner.txt # 自定义文件(如配置中指定)
10. 注意事项
- 文件路径:路径需以
classpath:
、file:
等前缀指定,或直接使用相对路径。 - 颜色兼容性:ANSI 转义码在 Windows 控制台可能需要启用支持(如通过
System.setProperty("jline.terminal", "jline.UnsupportedTerminal")
)。 - Spring Boot 版本差异:部分功能(如颜色支持)可能因版本不同而有差异。
11. 典型场景应用
- 企业级应用:替换为公司 LOGO,增强品牌识别。
- 调试场景:通过
banner-mode=log
将商标记录到日志文件。 - 高并发服务:禁用商标(
banner-mode=off
)以减少启动输出。
通过以上步骤和配置,您可以完全控制 Spring Boot 启动时的商标显示行为。根据需求选择合适的配置项,轻松实现个性化和功能化调整。