大数跨境
0
0

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

SpringBoot 控制台秒变炫彩特效,秀翻同事指南! 终码一生
2025-09-30
3
点击“终码一生”,关注,置顶公众号
每日技术干货,第一时间送达!
01
自定义 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      ==
===========================================
提供几个网站可以自己去生成图案:
  • https://patorjk.com/software/taag/
  • https://ascii.co.uk/art
  • https://fsymbols.com/generators/carty/
02
进阶方式:关闭默认 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 classAbsWebApplication {

    privatestatic final String RESET = "\u001B[0m";
    privatestatic final String CYAN = "\u001B[36m";
    privatestatic final String BLUE = "\u001B[34m";
    privatestatic final String PURPLE = "\u001B[35m";
    privatestatic 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 classAbsWebApplication {

    privatestatic final String RESET = "\u001B[0m";
    privatestatic final String CYAN = "\u001B[36m";
    privatestatic final String MAGENTA = "\u001B[35m";
    privatestatic final String BLUE = "\u001B[34m";
    privatestatic 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 classAbsWebApplication {
    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);
    }
}
自己也可以让AI去生成。
01
实现启动成功后的彩色提示
public classAbsWebApplication {
    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);
}
来源:blog.csdn.net/weixin_45677023
END
PS:防止找不到本篇文章,可以收藏点赞,方便翻阅查找哦。



往期推荐



JDK8 写 10 行,JDK17 写 1 行,我还用它干嘛?

字节二面:Redis缓存预热,该如何实现?

换掉 Postman,我用它!!!

SQL优化 20 连击,建议收藏!

用SpringBoot构建轻量级日志查看器,省时又省力

深入Quartz,更优雅地管理你的定时任务


【声明】内容源于网络
0
0
终码一生
开发者聚集地。分享Java相关开发技术(JVM,多线程,高并发,性能调优等),开源项目,常见开发问题和前沿科技资讯!
内容 1876
粉丝 0
终码一生 开发者聚集地。分享Java相关开发技术(JVM,多线程,高并发,性能调优等),开源项目,常见开发问题和前沿科技资讯!
总阅读1.4k
粉丝0
内容1.9k