SpringBoot控制台秒变炫彩特效的实现指南

 更新时间:2025年10月09日 08:30:12   作者:皮皮林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控制台炫彩特效的资料请关注脚本之家其它相关文章!

相关文章

  • Activiti流程图查看实例

    Activiti流程图查看实例

    这篇文章主要介绍了Activiti流程图查看实例,需要的朋友可以参考下
    2014-08-08
  • java 重载(overload)与重写(override)详解及实例

    java 重载(overload)与重写(override)详解及实例

    这篇文章主要介绍了java 重载(overload)与重写(override)详解及实例的相关资料,并附实例代码,需要的朋友可以参考下
    2016-10-10
  • 解决JDK异常处理No appropriate protocol问题

    解决JDK异常处理No appropriate protocol问题

    这篇文章主要介绍了解决JDK异常处理No appropriate protocol问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 介绍Java的大数类(BigDecimal)和八种舍入模式

    介绍Java的大数类(BigDecimal)和八种舍入模式

    在实际应用中,需要对更大或者更小的数进行运算和处理。Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。本文将介绍Java中的大数类BigDecimal及其八种舍入模式,有需要的可以参考借鉴。
    2016-08-08
  • springboot实现文件上传和下载功能

    springboot实现文件上传和下载功能

    这篇文章主要为大家详细介绍了springboot实现文件上传和下载功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Java并发编程中的Callable、Future和FutureTask详解

    Java并发编程中的Callable、Future和FutureTask详解

    这篇文章主要介绍了Java并发编程中的Callable、Future和FutureTask详解,创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口,这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果,需要的朋友可以参考下
    2023-07-07
  • 详解SpringBoot封装使用JDBC

    详解SpringBoot封装使用JDBC

    这篇文章主要介绍了SpringBoot封装JDBC使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Java基础教程_判断语句if else

    Java基础教程_判断语句if else

    下面小编就为大家带来一篇Java基础教程_判断语句if else。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • SpringBoot实现简单的登录注册的项目实战

    SpringBoot实现简单的登录注册的项目实战

    本文主要介绍了SpringBoot实现简单的登录注册的项目实战,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Spring框架中IoC容器与DI依赖注入教程

    Spring框架中IoC容器与DI依赖注入教程

    IOC也是Spring的核心之一了,之前学的时候是采用xml配置文件的方式去实现的,后来其中也多少穿插了几个注解,但是没有说完全采用注解实现。那么这篇文章就和大家分享一下,全部采用注解来实现IOC + DI
    2023-01-01

最新评论