spring boot 启动时默认显示 ascii banner,可通过 setbanner(null) 或配置 spring.main.banner-mode=off 关闭;支持 banner.txt 自定义文本、图片 banner,或实现 banner 接口动态生成。

Spring Boot 启动时默认会打印 ASCII 风格的 Banner(启动图标),你可以通过 SpringApplication.setBanner() 方法关闭它,或者用自定义 Banner 替换默认图标。
关闭默认 Banner
最简单的方式是调用 setBanner(null),让 Spring Boot 不输出任何 Banner:
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setBanner(null); // 完全禁用 Banner
app.run(args);
}
}
也可以在 application.properties 或 application.yml 中配置(更常用):
spring.main.banner-mode=off
注意:banner-mode=off 是推荐方式,比代码设置更轻量、更易维护。
使用自定义文本 Banner
准备一个纯文本文件(如 banner.txt),放在 src/main/resources/ 目录下。内容可以是公司名称、Logo 文字版等:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 支持 ANSI 颜色转义(如
\u001B[32m表示绿色) - 支持变量占位符,如
${spring-boot.version}、${application.version} - 文件名必须是
banner.txt(或banner.gif/banner.jpg等,但文本最常用)
Spring Boot 会自动加载该文件,无需额外代码。
编程方式注入自定义 Banner 实现
如果需要动态生成 Banner(比如根据环境显示不同文字),可实现 Banner 接口:
public class CustomBanner implements Banner {
@Override
public void printBanner(Environment environment, Class> sourceClass, PrintStream out) {
out.println("\u001B[36m");
out.println(" ██████╗ ██████╗ ███╗ ███╗██████╗ ██╗ ██╗███████╗");
out.println("██╔════╝██╔═══██╗████╗ ████║██╔══██╗╚██╗ ██╔╝██╔════╝");
out.println("██║ ██║ ██║██╔████╔██║██████╔╝ ╚████╔╝ █████╗ ");
out.println("██║ ██║ ██║██║╚██╔╝██║██╔═══╝ ╚██╔╝ ██╔══╝ ");
out.println("╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ██║ ███████╗");
out.println(" ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚══════╝");
out.println("\u001B[0m");
}
}
然后在启动类中设置:
SpringApplication app = new SpringApplication(Application.class); app.setBanner(new CustomBanner()); app.run(args);
注意事项和常见问题
以下几点容易被忽略但很关键:
-
setBanner(null)和banner-mode=off效果一致,但后者优先级更高(配置 > 代码) - 若同时存在
banner.txt和setBanner(...),以代码设置为准 - 自定义 Banner 文件不支持 UTF-8 BOM,保存时选“UTF-8 无 BOM”格式,否则可能乱码或加载失败
- IDE 运行时控制台字体需支持等宽和 ASCII 渲染,否则排版可能错乱
不复杂但容易忽略细节,按需选择配置方式即可。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










