100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 【基础篇】SpringBoot 自定义 Banner

【基础篇】SpringBoot 自定义 Banner

时间:2020-03-28 22:58:44

相关推荐

【基础篇】SpringBoot 自定义 Banner

写在最前

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

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

动手替换

生成 Banner

通过如下链接可以生成自己项目想要的 ASCII 艺术字

定制化 ASCII 字符1定制化 ASCII 字符2定制化 ASCII 图片

如下生成 banner 字符

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

替换 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=Strive

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

To My Love!-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-__ __ __ __.*. /~ .~\ /~ ~\ /~ .~\ /~ ~\*** '`\/'* '`\/'*V (.*)(. *)/\|/\ \Ming . *./ \Yue . *./|`\ .. .*/' `\ .. .*/'.*.| `\ * .*. */' _ _ `\ * .*. */' ***`\ * */' ( `\/'*) `\ * */'V`\/'\ */' `\/'/\|/\`\/' |--+++==##<<{{******** Ming Yue ********}}>>##==++--:: Spring Boot :: (${spring-boot.version})--by ${app.author}

打印如下:

To My Love!-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-__ __ __ __.*. /~ .~\ /~ ~\ /~ .~\ /~ ~\*** '`\/'* '`\/'*V (.*)(. *)/\|/\ \Ming . *./ \Yue . *./|`\ .. .*/' `\ .. .*/'.*.| `\ * .*. */' _ _ `\ * .*. */' ***`\ * */' ( `\/'*) `\ * */'V`\/'\ */' `\/'/\|/\`\/' |--+++==##<<{{******** Ming Yue ********}}>>##==++--:: Spring Boot :: (2.6.6)--by Strive

实现原理

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

package org.springframework.boot;import java.io.PrintStream;import org.springframework.core.env.Environment;@FunctionalInterfacepublic 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;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。