Spring Boot 支持三种自定义启动 Logo 方式:文本(banner.txt)、图片(banner.png等)和编程式动态生成;可通过配置项控制路径、编码、颜色、输出模式等。

Spring Boot 配置自定义启动 Logo,核心是让应用在启动时加载你设计的横幅内容。它支持文本(banner.txt)、图片(banner.png等)和编程式动态生成三种方式,无需改源码、不依赖插件,开箱即用。
直接放 banner.txt 文件(最常用)
这是最快捷的方式:在 src/main/resources 目录下新建一个纯文本文件,命名为 banner.txt,保存为 UTF-8 编码。Spring Boot 启动时会自动识别并打印其中内容。
- 内容可以是 ASCII 艺术字、项目名、版本号,甚至带 ANSI 颜色代码
- 支持变量占位符,比如
${application.version}、${spring-boot.version}、${AnsiColor.GREEN}等,这些会在启动时自动替换 - 如果想换路径,比如把文件放在
src/main/resources/banner/my-banner.txt,就在application.properties中加配置:spring.banner.location=classpath:banner/my-banner.txt
用图片当 Banner(支持 GIF/JPG/PNG)
Spring Boot 原生支持将图片转成 ASCII 字符串并显示,视觉效果更直观。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 把图片命名为
banner.gif、banner.jpg或banner.png,放入src/main/resources - 优先级顺序是:GIF > JPG > PNG,只要存在更高优先级的文件,低优先级的会被忽略
- 如需指定其他图片路径或名称,用配置:
spring.banner.image.location=classpath:images/logo.png - 可调参数控制渲染效果,例如:
spring.banner.image.width=76spring.banner.image.height=32spring.banner.image.margin=2spring.banner.image.invert=false
编程实现动态 Banner(适合多环境/带逻辑场景)
当你需要根据环境变量、配置中心或运行时状态生成不同 Banner(比如 DEV 显示“测试环境”,PROD 显示公司水印),就该用代码方式。
- 写一个类实现
org.springframework.boot.Banner接口 - 重写
printBanner方法,通过PrintStream输出任意字符串(支持颜色、换行、动态读取配置) - 在
main方法中显式设置:SpringApplication app = new SpringApplication(MyApp.class);app.setBanner(new CustomBanner());app.run(args); - 优势明显:能读取
Environment、调用外部 API、拼接时间戳或 Git 提交 ID
额外控制项(按需开启)
有些细节影响最终效果,容易被忽略:
- 禁用 Banner:设
spring.main.banner-mode=off或代码中app.setBannerMode(Banner.Mode.OFF) - 输出到日志而非控制台:设
spring.main.banner-mode=log(INFO 级别) - 指定字符编码:若
banner.txt显示乱码,加spring.banner.charset=UTF-8 - 颜色示例写法:
${AnsiColor.RED}Hello${AnsiColor.RESET} ${AnsiBackground.BLUE}World${AnsiBackground.RESET}


















