100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Spring Boot自定义Banner

Spring Boot自定义Banner

时间:2020-06-25 01:23:13

相关推荐

Spring Boot自定义Banner

Spring Boot自定义Banner

/p/a53f324c92f2

我们在启动 SpringBoot 时,控制台会打印 SpringBoot Logo 以及版本信息;这个操作是 SpringBoot 固定的还是可配置(自定义)的?

. _____ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v1.5.12.RELEASE)

带着这个疑问,翻阅了一下源码发现这个操作还真可以自定义,SpringBoot 有一个接口org.springframework.boot.Banner是专门来做这个操作的。我们可以实现这个接口来自定义打印 Banner 信息;但是不推荐自己去写,因为这个不是什么重要的功能,没必要把时间花在这上面,既然 SpringBoot 提供了这个功能,肯定为我们实现了。

org.springframework.boot.ResourceBanner

文本格式,SpringBoot 会读取配置项banner.txtbanner.location,从配置项中获取真实的文件地址;如果配置中没有配置,会把配置项作为文件去加载;

org.springframework.boot.ImageBanner

图片格式,SpringBoot 加载配置项banner.image.location,从配置项中获取真实的路径,SpringBoot 会根据配置项的路径加载文件。

如果没有配置banner.image.location,转而依次加载banner.gifbanner.jpgbanner.png这三个中存在的文件;

如果上面两种都没有配置,SpringBoot 就会加载默认的 Banner;也就是文章开头介绍的方式。

接下来我会介绍在文本格式(ResourceBanner);

环境:

操作系统:MacOS

SpringBoot版本:1.5.12.RELEASE

创建启动类:

src/main/java/{package}/Application.java

@SpringBootApplicationpublic class Application {public static void main(String[] args) {// 启动颜色格式化// 这不是唯一启动颜色格式的方式,有兴趣的同学可以查看源码/*** 1. AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);* 2. 在`src/main/resources`目录下新建文件`application.properties`,* 内容为:`spring.output.ansi.enabled=always`* * 重要:如果配置第二种方式,第一种方式就不会起作用*/AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);new SpringApplicationBuilder(Application.class)//.main(SpringVersion.class) // 这个是为了可以加载 Spring 版本.bannerMode(Banner.Mode.CONSOLE)// 控制台打印.run(args);}}

创建Banner文件

src/main/resource/banner.txt

${AnsiColor.BRIGHT_YELLOW}//_ooOoo_ ////o8888888o////88" . "88////(| ^_^ |)////O\ = /O//// ____/`---'\____ ////.' \\||// `.//// / \\||| : |||// \ //// / _||||| -:- |||||- \ //// | | \\\ - /// | | //// | \_| ''\---/'' | | //// \ .-\__ `-` ___/-. / ////___`. .' /--.--\ `. . ___ //// ."" '< `.___\_<|>_/___.' >'"". //// | | : `- \`.;`\ _ /`;.`/ - ` : | | //// \ \ `-. \_ __\ /__ _/ .-` / / ////========`-.____`-.___\_____/___.-`____.-'======== //// `=---='////^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //// 佛祖保佑 永不宕机永无BUG //${AnsiColor.BRIGHT_RED}Application Version: ${application.version}${application.formatted-version}Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}

从上面的内容中可以看到,还使用了一些属性设置:

${AnsiColor.BRIGHT_RED}:设置控制台中输出内容的颜色,可以自定义,具体参考org.springframework.boot.ansi.AnsiColor${application.version}:用来获取MANIFEST.MF文件中的版本号,这就是为什么要在Application.java中指定 SpringVersion.class{application.formatted-version}:格式化后的{application.version}版本信息${spring-boot.version}:Spring Boot的版本号{spring-boot.formatted-version}:格式化后的{spring-boot.version}版本信息

效果

spring-boot-banner.png

从效果图看,我们定义的文本最后被上了颜色,颜色是如何转换的,可以参考:颜色特效

生成工具

如果让我们手工的来编辑这些字符画,显然是一件非常困难的差事。所以,我们可以借助下面这些工具,轻松地根据文字或图片来生成用于Banner输出的字符画。

/software/taagwork-science.de/ascii//img2txt.php

参考来源:

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