Spring boot项目如何创建自己独特的banner呢?
下文笔者讲述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

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