Spring boot项目如何创建自己独特的banner呢?

乔欣 SpringBoot 发布时间:2023-03-12 21:41:40 阅读数:18844 1
下文笔者讲述SpringBoot中创建自身的banner的方法分享,如下所示

原SpringBoot的banner样式

每次启动SpringBoot时,都会出现以下的banner信息,如下所示:
控制台打印如下内容(logo和版本信息)
. ____ _ __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
 ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot :: (v2.6.6)

替换SpringBoot的Banner的方法

生成banner

找一个生成ASCII字的banner字符,如下所示

Adeal !
 -=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-
__ __ __ __
 .*. /~ .~\ /~ ~\ /~ .~\ /~ ~\
 *** ' `\/' * ' `\/' *
 V ( .*)( . *)
/\|/\ \ Ming . *./ \ Yue . *./
 | `\ . . .*/' `\ . . .*/' .*.
 | `\ * .*. */' _ _ `\ * .*. */' ***
 `\ * */' ( `\/'*) `\ * */' V
 `\/' \ */' `\/' /\|/\
 `\/' |
--+++==##<<{{******** Adeal ********}}>>##==++--

替换Banner

项目resources资源目录下创建 banner.txt 文件
如:
 将上面生成banner替换进去
 再次启动SpringBoot
 即可打印上面banner字符即可
  此时发现没有输出Spring Boot版本信息
 可在application.properties中追加相应的配置信息

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

再次运行Springboot,可看出banner信息,如下所示
Adeal !
 -=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-
__ __ __ __
 .*. /~ .~\ /~ ~\ /~ .~\ /~ ~\
 *** ' `\/' * ' `\/' *
 V ( .*)( . *)
/\|/\ \ Ming . *./ \ Yue . *./
 | `\ . . .*/' `\ . . .*/' .*.
 | `\ * .*. */' _ _ `\ * .*. */' ***
 `\ * */' ( `\/'*) `\ * */' V
 `\/' \ */' `\/' /\|/\
 `\/' |
--+++==##<<{{******** Adeal ********}}>>##==++--

实现原理

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
 
SpringBoot中修改banner的方法分享
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202303/6018.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者