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控制台炫彩特效的资料请关注脚本之家其它相关文章!

相关文章

  • Java中如何使用Redis GEO测算经纬度距离

    Java中如何使用Redis GEO测算经纬度距离

    GEO也是Redis中提供的一种数据类型,可以将其理解成ZSet有序集合类型,本文给大家介绍Java-使用Redis GEO测算经纬度距离,感兴趣的朋友一起看看吧
    2023-11-11
  • 详解spring与shiro集成

    详解spring与shiro集成

    这篇文章主要介绍了详解spring与shiro集成,需要的朋友可以参考下
    2017-09-09
  • Java职责链模式的深入了解

    Java职责链模式的深入了解

    这篇文章主要为大家介绍了Java职责链模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • SpringBoot使用@Validated处理校验的方法步骤

    SpringBoot使用@Validated处理校验的方法步骤

    @Validated 注解的主要目的是启用和利用 Spring 的验证框架,它可以用于类上也可以用于方法参数上,本文给大家介绍了SpringBoot使用@Validated优雅的处理校验的方法步骤,通过代码示例介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • javaweb用户注销后点击浏览器返回刷新页面重复登录问题的解决方法

    javaweb用户注销后点击浏览器返回刷新页面重复登录问题的解决方法

    这篇文章主要为大家详细介绍了javaweb用户注销后点击浏览器返回刷新页面重复登录问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • 基于SpringBoot创建Web页面并热更新的操作步骤

    基于SpringBoot创建Web页面并热更新的操作步骤

    SpringBoot是一个用于快速开发单个微服务的框架,它基于 Spring 框架,简化了Spring应用的初始化过程和开发流程,本文给大家介绍了如何基于SpringBoot创建Web页面并热更新,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Java Spring的依赖注入理解及@Autowired用法示例详解

    Java Spring的依赖注入理解及@Autowired用法示例详解

    文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入Bean)与@Value(注入简单类型)的用途,并说明@Bean方法参数可自动装配依赖,无需显式注解,感兴趣的朋友跟随小编一起看看吧
    2025-07-07
  • Mybatis中关于自定义mapper.xml时,参数传递的方式及写法

    Mybatis中关于自定义mapper.xml时,参数传递的方式及写法

    这篇文章主要介绍了Mybatis中关于自定义mapper.xml时,参数传递的方式及写法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java实现简单班级管理系统

    Java实现简单班级管理系统

    这篇文章主要为大家详细介绍了Java实现简单班级管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 使用SpringBoot注解方式处理事务回滚实现

    使用SpringBoot注解方式处理事务回滚实现

    这篇文章主要介绍了使用SpringBoot注解方式处理事务回滚实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论