SpringBoot控制台秒变炫彩特效的实现指南
作者:皮皮林551
本文介绍如何自定义SpringBoot启动横幅,通过banner.txt文件设置ASCII图案、版本号等,并使用ANSI颜色增强效果,还提供关闭默认Banner、添加启动信息及彩色提示的实现方法,需要的朋友可以参考下
一、自定义 Spring Boot 启动横幅 banner.txt
1、什么是 banner.txt?
当你启动 Spring Boot 应用时,控制台会打印出一个默认的 Spring Boot Banner(比如启动LOGO)。这个内容来自 resources
目录下的 banner.txt
文件。你可以通过这个文件自定义你想展示的 ASCII 图案、版本号、提示文字等。
2、创建或修改 banner.txt
2.1、文件位置:
在你的 Spring Boot 项目中,进入 src/main/resources
目录下,新建或编辑:
src/main/resources/banner.txt
2.2. 内容示例(纯色风格 + 启动信息):
=========================================== == AbsWeb 启动成功! 🚀 == == 端口:${server.port} == == 环境:${spring.profiles.active} == == 时间:${date} == ===========================================
你可以使用 Spring Boot 提供的一些占位符变量:
占位符 | 描述 |
---|---|
${application.version} | 项目的 MANIFEST.MF 版本 |
${application.formatted-version} | 格式化版本号 |
${spring-boot.version} | Spring Boot 版本 |
${server.port} | 当前端口号 |
${spring.profiles.active} | 当前激活的配置环境 |
${date} | 启动时间 |
${AnsiColor.NAME} | 控制台颜色(如 GREEN、RED) |
3、加点颜色和风格(可选)
Spring Boot 支持 ANSI 颜色,在支持的终端中会显示彩色效果:
${AnsiColor.BRIGHT_CYAN} =========================================== == AbsWeb 启动成功! 🚀 == == 端口:${server.port} == == 环境:${spring.profiles.active} == == 时间:${date} == =========================================== ${AnsiColor.DEFAULT}
4、启动测试
启动项目时,你会看到类似输出:
=========================================== == AbsWeb 启动成功! 🚀 == == 端口:8082 == == 环境:test == == 时间:2025-06-13 16:52:10 == ===========================================
提供几个网站可以自己去生成图案:
二、进阶方式:关闭默认 Banner,自定义 Java 启动内容
1、禁用 Spring Boot 的默认 banner:
在你的配置文件(如 application.yml
或 application.properties
)中添加:
yml文件:
spring: main: banner-mode: "off"
properties文件:
spring.main.banner-mode=off
2、自定义启动打印代码
在主启动类中添加一个打印方法,利用ANSI转义码输出彩色字符:
public class AbsWebApplication { private static final String RESET = "\u001B[0m"; private static final String CYAN = "\u001B[36m"; private static final String BLUE = "\u001B[34m"; private static final String PURPLE = "\u001B[35m"; private static final String WHITE = "\u001B[37m"; public static void main(String[] args) { SpringApplication.run(AbsWebApplication.class, args); printBanner(); } private static void printBanner() { System.out.println(); System.out.println(CYAN + "╔════════════════════════════════════════════╗" + RESET); System.out.println(CYAN + "║" + BLUE + " █████╗ ██████╗ ███████╗ ██████╗ ██╗ ██╗ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ██╔══██╗██╔══██╗██╔════╝██╔═══██╗██║ ██╔╝ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ███████║██████╔╝█████╗ ██║ ██║█████╔╝ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ██╔══██║██╔═══╝ ██╔══╝ ██║ ██║██╔═██╗ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ██║ ██║██║ ███████╗╚██████╔╝██║ ██╗ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ " + CYAN + "║" + RESET); System.out.println(CYAN + "║ ║" + RESET); System.out.println(CYAN + "║ " + WHITE + ">>> AbsWeb Application 启动成功 <<<" + CYAN + " ║" + RESET); System.out.println(CYAN + "║ " + PURPLE + "版本: v2.6.13 时间: " + WHITE + java.time.LocalTime.now() + CYAN + " ║" + RESET); System.out.println(CYAN + "╚════════════════════════════════════════════╝" + RESET); System.out.println(); } }
输出结果如下:
下面多提供几个图案:
public class AbsWebApplication { private static final String RESET = "\u001B[0m"; private static final String CYAN = "\u001B[36m"; private static final String MAGENTA = "\u001B[35m"; private static final String BLUE = "\u001B[34m"; private static final String YELLOW = "\u001B[33m"; public static void main(String[] args) { SpringApplication.run(AbsWebApplication.class, args); printBanner(); } private static void printBanner() { System.out.println(); System.out.println(MAGENTA + "╔══════════════════════════════════════════════════╗" + RESET); System.out.println(MAGENTA + "║ ║" + RESET); System.out.println(MAGENTA + "║ " + CYAN + "██████╗ █████╗ ██████╗ ██████╗ ██╗ ██╗ " + MAGENTA + "║" + RESET); System.out.println(MAGENTA + "║ " + CYAN + "██╔══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔╝ " + MAGENTA + "║" + RESET); System.out.println(MAGENTA + "║ " + BLUE + "██████╔╝███████║██████╔╝██║ ██║██║ ██╔╝ " + MAGENTA + "║" + RESET); System.out.println(MAGENTA + "║ " + BLUE + "██╔═══╝ ██╔══██║██╔═══╝ ██║ ██║██║ ╚═╝ " + MAGENTA + "║" + RESET); System.out.println(MAGENTA + "║ " + YELLOW + "██║ ██║ ██║██║ ╚██████╔╝███████╗ " + MAGENTA + "║" + RESET); System.out.println(MAGENTA + "║ " + YELLOW + "╚═╝ ╚═╝ ╚═╝╚═╝ ╚═════╝ ╚══════╝ " + MAGENTA + "║" + RESET); System.out.println(MAGENTA + "║ ║" + RESET); System.out.println(MAGENTA + "║ " + CYAN + ">>> AbsWeb Application 启动成功 <<< " + MAGENTA + "║" + RESET); System.out.println(MAGENTA + "║ " + CYAN + "版本: v2.6.13 时间: " + java.time.LocalTime.now() + " " + MAGENTA + "║" + RESET); System.out.println(MAGENTA + "║ ║" + RESET); System.out.println(MAGENTA + "╚══════════════════════════════════════════════════╝" + RESET); System.out.println(); } } public class AbsWebApplication { private static final String RESET = "\u001B[0m"; private static final String RED = "\u001B[31m"; private static final String GREEN = "\u001B[32m"; private static final String BLUE = "\u001B[34m"; private static final String PURPLE = "\u001B[35m"; private static final String YELLOW = "\u001B[33m"; public static void main(String[] args) { SpringApplication.run(AbsWebApplication.class, args); printBanner(); } private static void printBanner() { System.out.println(); System.out.println(PURPLE + "╔══════════════════════════╗" + RESET); System.out.println(PURPLE + "║ " + RED + "▂▃▅▇█ AbsWeb启动成功 █▇▅▃▂" + PURPLE + " ║" + RESET); System.out.println(PURPLE + "║ " + GREEN + "Version: v2.6.13" + " " + PURPLE + "║" + RESET); System.out.println(PURPLE + "║ " + BLUE + "Time: " + java.time.LocalTime.now() + " " + PURPLE + "║" + RESET); System.out.println(PURPLE + "╚══════════════════════════╝" + RESET); System.out.println(); } }
自己也可以让AI去生成。
三、实现启动成功后的彩色提示
public class AbsWebApplication { public static void main(String[] args) { SpringApplication.run(AbsWebApplication.class, args); printStartupMessage(); } private static void printStartupMessage() { String reset = "\u001B[0m"; String red = "\u001B[31m"; String yellow = "\u001B[33m"; String green = "\u001B[32m"; String cyan = "\u001B[36m"; String magenta = "\u001B[35m"; String blue = "\u001B[34m"; System.out.println(cyan + " (\_/) " + reset); System.out.println(cyan + " ( •_•) " + reset + red + " AbsWebApplication 启动成功!" + reset); System.out.println(cyan + " / >🍪 " + reset + yellow + " 祝你今天工作顺利,项目无BUG~" + reset); System.out.println(); System.out.println(magenta + " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" + reset); System.out.println(magenta + " ┃ 🎉 欢迎使用 AbsWeb!🎉 ┃" + reset); System.out.println(magenta + " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" + reset); } }
启动后示例:
下面提供几个示例:
放进方法进行替换就行了。
final String PURPLE = "\u001B[35m"; final String RED = "\u001B[31m"; final String RESET = "\u001B[0m"; System.out.println(PURPLE + " .----. .----. " + RESET); System.out.println(PURPLE + " / \/ \" + RESET); System.out.println(RED + " | (•) (•) | " + RESET); System.out.println(PURPLE + " | < | " + RESET); System.out.println(PURPLE + " \ --' / " + RESET); System.out.println(PURPLE + " `--------' " + RESET); System.out.println(RED + " AbsWeb 已启动!" + RESET); public static void printTechWave() { final String RESET = "\u001B[0m"; final String BLUE = "\u001B[34m"; final String CYAN = "\u001B[36m"; final String PURPLE = "\u001B[35m"; final String WHITE = "\u001B[37m"; System.out.println(CYAN + "╔════════════════════════════════════════════╗" + RESET); System.out.println(CYAN + "║" + BLUE + " ██╗ ██╗████████╗██╗ ██╗███████╗ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ██║ ██║╚══██╔══╝██║ ██║██╔════╝ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ██║ ██║ ██║ ██║ ██║█████╗ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ██║ ██║ ██║ ██║ ██║██╔══╝ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ╚██████╔╝ ██║ ╚██████╔╝███████╗ " + CYAN + "║" + RESET); System.out.println(CYAN + "║" + BLUE + " ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ " + CYAN + "║" + RESET); System.out.println(CYAN + "║ ║" + RESET); System.out.println(PURPLE + "║ 🚀 AbsWeb Application 启动成功!🚀 ║" + RESET); System.out.println(PURPLE + "║ Version: v2.6.13 " + WHITE + "启动时间: " + java.time.LocalTime.now() + " " + PURPLE + " ║" + RESET); System.out.println(CYAN + "╚════════════════════════════════════════════╝" + RESET); }
以上就是SpringBoot控制台秒变炫彩特效的实现指南的详细内容,更多关于SpringBoot控制台炫彩特效的资料请关注脚本之家其它相关文章!