SpringBoot 控制台秒变炫彩特效,秀翻同事指南!

SpringBoot炫彩控制台指南

一、自定义 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      ==
===========================================

提供几个网站可以自己去生成图案:

  • • patorjk.com/software/ta…
  • • ascii.co.uk/art
  • • fsymbols.com/generators/…

二、进阶方式:关闭默认 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);

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值