Spring Boot自定义Banner有三种方式:放banner.txt文件(最常用,支持动态变量)、用GIF/JPG/PNG图片(自动转ASCII,支持动画和样式调节)、编程实现Banner接口(可读配置、调用服务、动态生成)。

Spring Boot 自定义 Banner 启动图案有三种主流方式:放 banner.txt 文本文件、用 图片(GIF/JPG/PNG)、或写代码 实现 Banner 接口。效果从简单到灵活,按需选择即可。
直接放 banner.txt 文件(最常用)
在 src/main/resources 目录下新建纯文本文件,命名为 banner.txt,保存为 UTF-8 编码。Spring Boot 启动时会自动加载它,覆盖默认 Banner。
- 内容可用 ASCII 艺术字,推荐在线生成工具:patorjk.com/software/taag(支持英文)、network-science.de/ascii(支持中文)
- 支持动态变量,例如:
${application.name}、${application.version}、${spring-boot.version}、${AnsiColor.GREEN}等,启动时自动替换 - 如需改路径,比如放在
resources/banner/my-banner.txt,在application.properties中加:spring.banner.location=classpath:banner/my-banner.txt
用图片当 Banner(视觉更直观)
Spring Boot 原生支持将图片转成 ASCII 字符串输出,GIF 动图也能渲染出逐帧效果。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 把图片命名为
banner.gif、banner.jpg或banner.png,放入src/main/resources - 优先级顺序是:
banner.gif>banner.jpg>banner.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(设为 true 可反转黑白)
编程式实现 Banner(适合多环境/带逻辑场景)
当 Banner 需要根据环境、配置中心、Git 提交 ID 或运行时状态动态变化时,就该用代码方式。
- 新建类实现
org.springframework.boot.Banner接口,重写printBanner方法,通过PrintStream输出任意内容(支持 ANSI 颜色、换行、读取Environment) - 在
main方法中显式设置:SpringApplication app = new SpringApplication(MyApp.class);app.setBanner(new CustomBanner());app.run(args); - 优势明显:可读取配置、调用外部服务、拼接时间戳、注入 Git 信息等
额外控制项(按需开启)
有些细节影响最终呈现,容易被忽略:
- 关闭 Banner:
配置文件中写spring.main.banner-mode=off,或代码中调用app.setBannerMode(Banner.Mode.OFF) - 只输出到日志不打印到控制台:
spring.main.banner-mode=log - Banner.Mode 三个可选值:
OFF(关闭)、CONSOLE(控制台)、LOG(日志文件) - 注意:若同时存在
banner.png和banner.txt,Spring Boot 会都加载,并把图片转成的 ASCII 和文本内容拼接输出

















