Spring boot 项目新建自己的banner

51 篇文章 3 订阅

1 写在最前

我们在启动 Spring Boot 项目时会在控制台打印如下内容(logo 和版本信息):

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

2 动手替换

可以生成自己项目想要的 ASCII 艺术字,如下生成 banner 字符:

⣀⣆⣰⣒⣒⡀⢀⠔⠠⠤⡦⠤⠄⢴⠤⠤⠤⢴⠄
⢰⣒⣒⣒⣲⠄⠠⡎⠸⠽⠽⠽⠄⠼⡭⠭⠭⡽⠄
⢸⠒⠒⢒⣺⠄⠄⡇⡍⣝⣩⢫⠄⣊⣒⣺⣒⣊⡂
⢠⠤⠴⠤⠤⠄⢐⢔⠐⠒⡖⠒⠄
⣹⢸⢍⢉⢽⠄⢀⢼⠠⠤⡧⠤⠄
⡜⡸⠔⠑⠜⡄⠠⡸⢀⣀⣇⣀⠄
⢰⣒⣒⣒⣲⠄⠠⡦⢴⠄⡖⢲⠄⡖⢲⠒⢲⠒⡆
⢸⣒⣲⣒⣚⠄⠄⡯⢽⠄⣏⣹⠄⡇⡸⠄⢸⣀⡇
⣑⣒⣺⣒⣒⡀⢈⠍⠩⣡⠃⣸⠄⣏⣀⣀⣀⣀⡇
⡄⠄⡄⠐⢲⠒⠄⡆⠢⠄⡤⠤⠄⢀⠤⢄⢀⠤⢄
⢱⢰⠁⠈⢹⣉⠉⡏⡍⠄⠗⠒⡄⢸⠄⢸⢸⠄⢸
 ⠇  ⠈⣹⢀⡠⠺⡰⠄⠢⠤⠃⠘⠤⠜⠘⠤⠜

3 替换 Banner

项目的 resources 资源目录下创建 banner.txt 文件。例如:把上面生成的 banner 替换进去
在这里插入图片描述
再次启动项目,打印如上面 banner 字符即可。此时我们发现对应的 Spring Boot 的一些版本信息没有了,如果还想要,可以添加。 追加 Spring Boot 版本信息等


${spring-boot.version}:Spring Boot 版本号;
${spring-boot.formatted-version}:格式化后的 Spring Boot 版本号信息。
${application.version}:MANIFEST.MF 文件中的版本号;
${application.formatted-version}:格式化后的 MANIFEST.MF 文件中的版本号信息;

追加配置文件 application.properties 中定义的变量


app.author=wuKeFan

最终文件如下,再次启动项目查看打印

⣀⣆⣰⣒⣒⡀⢀⠔⠠⠤⡦⠤⠄⢴⠤⠤⠤⢴⠄
⢰⣒⣒⣒⣲⠄⠠⡎⠸⠽⠽⠽⠄⠼⡭⠭⠭⡽⠄
⢸⠒⠒⢒⣺⠄⠄⡇⡍⣝⣩⢫⠄⣊⣒⣺⣒⣊⡂
⢠⠤⠴⠤⠤⠄⢐⢔⠐⠒⡖⠒⠄
⣹⢸⢍⢉⢽⠄⢀⢼⠠⠤⡧⠤⠄
⡜⡸⠔⠑⠜⡄⠠⡸⢀⣀⣇⣀⠄
⢰⣒⣒⣒⣲⠄⠠⡦⢴⠄⡖⢲⠄⡖⢲⠒⢲⠒⡆
⢸⣒⣲⣒⣚⠄⠄⡯⢽⠄⣏⣹⠄⡇⡸⠄⢸⣀⡇
⣑⣒⣺⣒⣒⡀⢈⠍⠩⣡⠃⣸⠄⣏⣀⣀⣀⣀⡇
⡄⠄⡄⠐⢲⠒⠄⡆⠢⠄⡤⠤⠄⢀⠤⢄⢀⠤⢄
⢱⢰⠁⠈⢹⣉⠉⡏⡍⠄⠗⠒⡄⢸⠄⢸⢸⠄⢸
 ⠇  ⠈⣹⢀⡠⠺⡰⠄⠢⠤⠃⠘⠤⠜⠘⠤⠜
:: Spring Boot :: (${spring-boot.version})
 --by ${app.author}

打印如下:

⣀⣆⣰⣒⣒⡀⢀⠔⠠⠤⡦⠤⠄⢴⠤⠤⠤⢴⠄
⢰⣒⣒⣒⣲⠄⠠⡎⠸⠽⠽⠽⠄⠼⡭⠭⠭⡽⠄
⢸⠒⠒⢒⣺⠄⠄⡇⡍⣝⣩⢫⠄⣊⣒⣺⣒⣊⡂
⢠⠤⠴⠤⠤⠄⢐⢔⠐⠒⡖⠒⠄
⣹⢸⢍⢉⢽⠄⢀⢼⠠⠤⡧⠤⠄
⡜⡸⠔⠑⠜⡄⠠⡸⢀⣀⣇⣀⠄
⢰⣒⣒⣒⣲⠄⠠⡦⢴⠄⡖⢲⠄⡖⢲⠒⢲⠒⡆
⢸⣒⣲⣒⣚⠄⠄⡯⢽⠄⣏⣹⠄⡇⡸⠄⢸⣀⡇
⣑⣒⣺⣒⣒⡀⢈⠍⠩⣡⠃⣸⠄⣏⣀⣀⣀⣀⡇
⡄⠄⡄⠐⢲⠒⠄⡆⠢⠄⡤⠤⠄⢀⠤⢄⢀⠤⢄
⢱⢰⠁⠈⢹⣉⠉⡏⡍⠄⠗⠒⡄⢸⠄⢸⢸⠄⢸
 ⠇  ⠈⣹⢀⡠⠺⡰⠄⠢⠤⠃⠘⠤⠜⠘⠤⠜
:: Spring Boot :: (2.7.0)
 --by wuKeFan

4 实现原理

Banner 接口专门实现这个操作。要想自定义打印 banner ,只要自定义一个类实现这个接口,重写 printBanner 方法进行打印即可。Springboot 项目启动时,会创建我们的实现类对象,并调用对象的 printBanner 方法。

package org.springframework.boot;

import java.io.PrintStream;
import org.springframework.core.env.Environment;

@FunctionalInterface
public interface Banner {
 void printBanner(Environment environment, Class<?> sourceClass, PrintStream out);

 public static enum Mode {
 OFF, // 关闭 banner 打印
 CONSOLE, // 打印 banner 到 控制台
 LOG; // 打印 banner 到日志文件

 private Mode() {
 }
 }
}

printBanner 默认有三个实现: ImageBanner:加载和打印图片 banner; ResourceBanner:加载和打印字符 banner; SpringBootBanner:默认情况下,会使用 SpringBootBanner 实现类打印 banner;
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴名氏.

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值