用 banner.txt 给你的 Spring Boot 项目加个酷炫启动页

在开发 Spring Boot 项目时,你是否厌倦了千篇一律的启动画面?其实,Spring Boot 提供了一个非常实用的功能 —— banner.txt,它允许我们自定义应用启动时显示的文字和图片。无论你是想展示团队文化、区分环境,还是仅仅为了好看,banner.txt 都是一个非常有趣又实用的小功能。

官方文档参考:Spring Boot Reference Guide

1. 什么是 banner.txt?

banner.txt 是 Spring Boot 项目中的一个特殊文本文件,用于自定义应用启动时显示的欢迎信息或标识。默认情况下,Spring Boot 会显示如下字样:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.6.13)

而通过自定义 banner.txt 文件,你可以将这段文字替换成任何你喜欢的内容,甚至可以是一张 ASCII 艺术图或动态变量信息!

2. 如何创建 banner.txt 文件?

1. 创建 banner 文件(支持自定义名称)

你可以选择在 src/main/resources/ 目录下创建任意名称的文本文件,例如:

  • banner.txt(默认识别)
  • my-banner.txt
  • banner-dev.txt
  • banner-prod.txt

如果你使用非默认名称,只需在配置中指定该文件路径即可。如 banner 文件名为 my-banner.txt ,则 application.yaml 配置如下:

spring:
  banner:
    location: my-banner.txt

2. 添加内容

你可以直接粘贴一段 ASCII 文字进去。例如:

.--.   .--.      .-''-.      .-''-.  .-------.       .-'''-. .-./`) _____     __ .-./`)   ____     __ .-./`) ,---.   .--.  .-_'''-.    
|  | _/  /     .'_ _   \   .'_ _   \ |  _ _   \     / _     \\ .-.')\   _\   /  /\ .-.')  \   \   /  /\ .-.')|    \  |  | '_( )_   \   
| (`' ) /     / ( ` )   ' / ( ` )   '| ( ' )  |    (`' )/`--'/ `-' \.-./ ). /  ' / `-' \   \  _. /  ' / `-' \|  ,  \ |  ||(_ o _)|  '  
|(_ ()_)     . (_ o _)  |. (_ o _)  ||(_ o _) /   (_ o _).    `-'`"`\ '_ .') .'   `-'`"`    _( )_ .'   `-'`"`|  |\_ \|  |. (_,_)/___|  
| (_,_)   __ |  (_,_)___||  (_,_)___|| (_,_).' __  (_,_). '.  .---.(_ (_) _) '    .---. ___(_ o _)'    .---. |  _( )_\  ||  |  .-----. 
|  |\ \  |  |'  \   .---.'  \   .---.|  |\ \  |  |.---.  \  : |   |  /    \   \   |   ||   |(_,_)'     |   | | (_ o _)  |'  \  '-   .' 
|  | \ `'   / \  `-'    / \  `-'    /|  | \ `'   /\    `-'  | |   |  `-'`-'    \  |   ||   `-'  /      |   | |  (_,_)\  | \  `-'`   |  
|  |  \    /   \       /   \       / |  |  \    /  \       /  |   | /  /   \    \ |   | \      /       |   | |  |    |  |  \        /  
`--'   `'-'     `'-..-'     `'-..-'  ''-'   `'-'    `-...-'   '---''--'     '----''---'  `-..-'        '---' '--'    '--'   `'-...-'   

小提示:

可以使用在线工具 Text to ASCII Art Generator (TAAG)FIGlet - hosted by PLiG 等网站生成你想要的字体样式。

注意:

1. 如果文件的编码不是UTF-8,则可以设置 spring.banner.charset 

 3. 动态变量注入

Spring Boot 支持在 banner.txt 中插入一些动态变量,比如版本号等。

支持的变量包括:

变量名

说明

${application.version}

应用程序的版本号,取自 MANIFEST.MF 文件中的声明。例如:Implementation-Version: 1.0 将显示为 1.0。

${application.formatted-version}

应用程序的版本号,取自 MANIFEST.MF,并以格式化方式显示(加上前缀 v 和括号)。例如:v1.0。

${spring-boot.version}

当前使用的 Spring Boot 版本号。例如:2.1.0.RELEASE。

${spring-boot.formatted-version}

当前使用的 Spring Boot 版本号,以格式化方式显示(加上前缀 v 和括号)。例如:v2.1.0.RELEASE。

${Ansi.NAME}(或 ${AnsiColor.NAME}、${AnsiBackground.NAME}、${AnsiStyle.NAME})

ANSI 转义码名称,用于设置文字颜色、背景色或样式。具体可选值请参考 AnsiPropertySource 类。例如:${AnsiColor.RED} 表示红色文字。

${application.title}

应用程序的标题,取自 MANIFEST.MF 文件中的声明。例如:Implementation-Title: MyApp 将显示为 MyApp。

示例:

.--.   .--.      .-''-.      .-''-.  .-------.       .-'''-. .-./`) _____     __ .-./`)   ____     __ .-./`) ,---.   .--.  .-_'''-.
|  | _/  /     .'_ _   \   .'_ _   \ |  _ _   \     / _     \\ .-.')\   _\   /  /\ .-.')  \   \   /  /\ .-.')|    \  |  | '_( )_   \
| (`' ) /     / ( ` )   ' / ( ` )   '| ( ' )  |    (`' )/`--'/ `-' \.-./ ). /  ' / `-' \   \  _. /  ' / `-' \|  ,  \ |  ||(_ o _)|  '
|(_ ()_)     . (_ o _)  |. (_ o _)  ||(_ o _) /   (_ o _).    `-'`"`\ '_ .') .'   `-'`"`    _( )_ .'   `-'`"`|  |\_ \|  |. (_,_)/___|
| (_,_)   __ |  (_,_)___||  (_,_)___|| (_,_).' __  (_,_). '.  .---.(_ (_) _) '    .---. ___(_ o _)'    .---. |  _( )_\  ||  |  .-----.
|  |\ \  |  |'  \   .---.'  \   .---.|  |\ \  |  |.---.  \  : |   |  /    \   \   |   ||   |(_,_)'     |   | | (_ o _)  |'  \  '-   .'
|  | \ `'   / \  `-'    / \  `-'    /|  | \ `'   /\    `-'  | |   |  `-'`-'    \  |   ||   `-'  /      |   | |  (_,_)\  | \  `-'`   |
|  |  \    /   \       /   \       / |  |  \    /  \       /  |   | /  /   \    \ |   | \      /       |   | |  |    |  |  \        /
`--'   `'-'     `'-..-'     `'-..-'  ''-'   `'-'    `-...-'   '---''--'     '----''---'  `-..-'        '---' '--'    '--'   `'-...-'
${AnsiColor.RED}Spring Boot Version: ${spring-boot.version}${AnsiColor.DEFAULT}

 4. 用图片作为 Banner

除了文字,Spring Boot 还支持使用图片来作为启动 Banner。它会将图片转换为 ASCII 字符进行显示。

1. 图片准备

将图片文件放在 src/main/resources/ 目录下,Spring Boot 会自动读取并转换为 ASCII 字符显示在启动日志中。

Spring Boot 会自动识别以下文件名作为 banner 图片,无需额外配置:

  • banner.gif
  • banner.jpg
  • banner.png

如果你使用了非默认文件名或格式(如 logo.jpg, app-banner.gif),你需要在 application.yml 中手动指定路径:

spring:
  banner:
    image:
      location: classpath:images/app-banner.jpg
      width: 30 # 设置字符宽度(推荐不超过终端宽度)
      height: 10 # 设置字符高度
      invert: false # 是否反色显示(适合浅色背景)

说明:

1. 文本 banner 与图片 banner 可共存。

你完全可以在项目中同时保留:

  • banner.txt:用于显示文字内容(如版本号、颜色样式等)
  • banner.png:用于显示图片 logo 或图形标识

此时 Spring Boot 会优先显示图片 banner,然后再显示文本 banner。

2. banner.png、banner.gif、banner.jpg 同时存在,如果在 application.yml 中未指定,则按 banner.gif > banner.jpg > banner.png。

2. 启动查看效果

以该图为例:

最终打印效果如图所示:

5. 禁用 banner

在某些生产或审计环境中,可能需要隐藏 banner 输出。可以通过以下方式实现:

方法 1:Java 代码设置 

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BannerDemoApplication {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(BannerDemoApplication.class);
        app.setBannerMode(Banner.Mode.OFF);
        app.run(args);
    }

}

该方式容易被 application.yaml 的配置覆盖。

方法 2:配置文件设置

spring:
  main:
    banner-mode: OFF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可儿·四系桜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值