洋果子店rose ios版
388.2M · 2025-10-14
当你启动 Spring Boot 应用时,控制台会打印出一个默认的 Spring Boot Banner(比如启动 LOGO)。这个内容来自 resources
目录下的 banner.txt
文件。你可以通过这个文件自定义你想展示的 ASCII 图案、版本号、提示文字等。
在你的 Spring Boot 项目中,进入 src/main/resources
目录下,新建或编辑:
===========================================
== 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) |
Spring Boot 支持 ANSI 颜色,在支持的终端中会显示彩色效果:
${AnsiColor.BRIGHT_CYAN}
===========================================
== AbsWeb 启动成功! ==
== 端口:${server.port} ==
== 环境:${spring.profiles.active} ==
== 时间:${date} ==
===========================================
${AnsiColor.DEFAULT}
启动项目时,你会看到类似输出:
===========================================
== AbsWeb 启动成功! ==
== 端口:8082 ==
== 环境:test ==
== 时间:2025-06-13 16:52:10 ==
===========================================
提供几个网站可以自己去生成图案:
在你的配置文件(如 application.yml
或 application.properties
)中添加:
yml 文件:
spring:
main:
banner-mode: "off"
properties 文件:
spring.main.banner-mode=off
在主启动类中添加一个打印方法,利用 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);
}