SpringBoot项目中自定义Banner的技术指南

 更新时间:2025年03月04日 09:26:12   作者:拾荒的小海螺  
在 Spring Boot 项目中,当应用启动时会显示默认的 Spring 标志和版本信息,定制化的启动 Banner 不仅可以美化应用,甚至可以提供一些关键信息,本文将介绍如何在 Spring Boot 项目中自定义启动 Banner,需要的朋友可以参考下

1、简述

在 Spring Boot 项目中,当应用启动时会显示默认的 Spring 标志和版本信息。定制化的启动 Banner 不仅可以美化应用,还能在项目中增加个性化的品牌印记,甚至可以提供一些关键信息。本文将介绍如何在 Spring Boot 项目中自定义启动 Banner,以及如何使用工具生成自定义文本和图像 Banner。

在这里插入图片描述

2、Spring Boot 默认 Banner

Spring Boot 默认的 Banner 位于 org/springframework/boot 包内的 spring-boot.jar 中。默认 Banner 只显示了 Spring 标志、版本和应用名称信息,效果如下:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.5.4)

3、自定义 Banner

Spring Boot 支持三种方式来定制 Banner:

  • 文本文件(ASCII Art):通过 banner.txt 文件设置 ASCII Art。
  • 图片文件:通过 banner.jpg、banner.png 或 banner.gif 设置图片。
  • 编程方式:通过编写 Java 代码自定义 Banner。

3.1 使用 banner.txt 定义 ASCII Art

最简单的方法是创建一个 banner.txt 文件并放置在 src/main/resources 目录中。启动应用时,Spring Boot 会自动加载该文件内容并替代默认 Banner。

实践步骤:

  • 在 src/main/resources 中创建 banner.txt 文件。
  • 编写 ASCII 文本图案。可以使用 Banner Generator 等工具生成自定义字符。

例如,将生成的 Banner 粘贴到 banner.txt 中:

  ____            _         _   ____             _      
 | __ ) _   _ ___| |_ _   _| | | __ )  __ _  ___| | __  
 |  _ \| | | / __| __| | | | | |  _ \ / _` |/ __| |/ /  
 | |_) | |_| \__ \ |_| |_| | | | |_) | (_| | (__|   <   
 |____/ \__,_|___/\__|\__,_|_| |____/ \__,_|\___|_|\_\  

在 Spring Boot 启动时,将显示此自定义 ASCII 文本。

3.2 使用图片作为 Banner

Spring Boot 支持使用图片作为 Banner。图片文件的格式可以是 PNG、GIF 或 JPG,系统会在启动时将图片渲染成 ASCII 格式。具体支持的图片格式为黑白图像。

实践步骤:

  • 将 banner.png、banner.jpg 或 banner.gif 图片文件放在 src/main/resources 中。
  • 启动项目,Spring Boot 会自动加载并显示图片的 ASCII 版本。

图片生成推荐工具

可以使用 Image to ASCII 这类工具生成黑白图片,将其导出为 PNG 或 JPG 格式,并命名为 banner.png。

3.3 通过编程方式自定义 Banner

如果希望在启动过程中动态设置 Banner,还可以通过 Java 代码实现。实现 Banner 接口来自定义 Banner,并将其注册到 Spring Boot 应用中。

创建一个实现 org.springframework.boot.Banner 接口的类:

package com.example.demo;

import org.springframework.boot.Banner;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

import java.io.PrintStream;

@Component
public class CustomBanner implements Banner {
    @Override
    public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
        out.println("=================================");
        out.println("   Welcome to My Spring Boot App ");
        out.println("=================================");
    }
}

在 SpringApplication 中设置自定义 Banner:

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(DemoApplication.class);
        app.setBanner(new CustomBanner());
        app.run(args);
    }
}

在启动应用时,将会显示 CustomBanner 中的内容。

4、配置 Banner

Spring Boot 允许在 application.properties 文件中设置 Banner 的显示位置和字体颜色。

4.1 设置 Banner 显示模式

可以通过 spring.main.banner-mode 属性来设置 Banner 的显示模式:

spring.main.banner-mode=console
  • console:在控制台打印 Banner(默认值)。
  • log:将 Banner 打印到日志文件。
  • off:禁用 Banner。

4.2 设置字体颜色

要为 Banner 设置颜色,可以通过 ANSI 转义代码自定义字体颜色。例如:

${<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->AnsiColor.RED}Welcome to My Spring Boot App${<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->AnsiColor.DEFAULT}

将这段内容写入 banner.txt,即可在控制台中显示红色的文本。常用颜色代码:

  • ${AnsiColor.BLACK}
  • ${AnsiColor.RED}
  • ${AnsiColor.GREEN}
  • ${AnsiColor.YELLOW}
  • ${AnsiColor.BLUE}
  • ${AnsiColor.MAGENTA}
  • ${AnsiColor.CYAN}
  • ${AnsiColor.WHITE}

注意: ANSI 颜色在部分控制台中可能不支持。

5、总结

以下是在 Spring Boot 项目中自定义 Banner 的完整操作步骤:

  • 使用 ASCII Art 定义 Banner:在 src/main/resources/banner.txt 中添加 ASCII Art 内容。
  • 使用图片作为 Banner:将黑白图片文件(如 banner.png)放置到 src/main/resources 中。
  • 通过编程方式自定义 Banner:实现 Banner 接口,并在 SpringApplication 中注册。
  • 在 application.properties 中配置:选择 Banner 显示模式和字体颜色。

通过本文的方法,您可以为 Spring Boot 项目添加一个有趣的、个性化的启动画面,让您的应用更具特色。

到此这篇关于SpringBoot项目中自定义Banner的技术指南的文章就介绍到这了,更多相关SpringBoot自定义Banner内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring IOC相关注解运用(上篇)

    Spring IOC相关注解运用(上篇)

    这篇文章主要介绍了Spring IOC相关注解的运用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • Spring Boot和Vue跨域请求问题原理解析

    Spring Boot和Vue跨域请求问题原理解析

    这篇文章主要介绍了Spring Boot和Vue跨域请求问题原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • java生成指定范围随机数的多种代码

    java生成指定范围随机数的多种代码

    今天在写代码的时候需要用到一个生成指定范围随机数的函数,百度了一下,发现了很多种方法,这里简单为大家整理一下,方便需要的朋友
    2017-08-08
  • 带你轻松了解Modbus协议

    带你轻松了解Modbus协议

    这篇文章主要给大家介绍了关于Modbus协议的相关资料,此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的,需要的朋友可以参考下
    2021-11-11
  • java实现一个简单的网络爬虫代码示例

    java实现一个简单的网络爬虫代码示例

    这篇文章主要介绍了java实现一个简单的网络爬虫代码示例,还是挺不错的,这里分享给大家,需要的朋友可以参考下。
    2017-11-11
  • 基于Spring框架的Shiro配置方法

    基于Spring框架的Shiro配置方法

    这篇文章主要介绍了基于Spring框架的Shiro配置方法,需要的朋友可以参考下
    2014-10-10
  • 关于Mybatis与JPA的优缺点说明

    关于Mybatis与JPA的优缺点说明

    这篇文章主要介绍了关于Mybatis与JPA的优缺点说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java开发SpringBoot集成接口文档实现示例

    Java开发SpringBoot集成接口文档实现示例

    这篇文章主要为大家介绍了Java开发SpringBoot如何集成接口文档的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • Java中FileOutputStream类的使用

    Java中FileOutputStream类的使用

    java.io.FileOutputStream类是文件输出流,用于将数据写出到文件,下面就来介绍一下Java中FileOutputStream类的使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • lombok 子类中如何使用@Builder问题

    lombok 子类中如何使用@Builder问题

    这篇文章主要介绍了lombok 子类中如何使用@Builder问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09

最新评论