SpringBoot应用程序启动过程中,都会默认在控制台输出上图所显示的内容,即是我们本篇文章所说的Banner。
当然,SpringBoot 提供了默认的Banner之外,也提供了自定义设置Banner的功能。
1、自定义Banner内容
自定义Banner很简单,只需要在 src/main/resource 下新建 banner.txt ,将我们的banner内容放到banner.txt里面即可,启动时SpringBoot会自动读取并使用这个文本文件中的banner。(banner.txt 也可以替换成 banner.gif , banner.jpg 或 banner.png 等图片。图片会转换为字符画(ASCII art)形式),同时存在多个banner文件,启动时会依次打印所有banner。
这里提供一个在线网站 http://www.bootschool.net/ascii 可以帮助我们在线生成自己的banner样式。
2、Banner样式设置
如果我们是以 banner.txt 自定义Banner的话,我们可以在banner.txt 加入以下的一些占位符样式等属性。
变量 | 描述 |
${Ansi.NAME}(或 | NAME代表一种ANSI编码,具体详情查 看 AnsiPropertySource |
${application.version} | MANIFEST.MF中声明的应用版本号,例 如 Implementation-Version: 1.0 会 打印 1.0 |
${application.formatted-version} | MANIFEST.MF中声明的被格式化后的应 用版本号(被括号包裹且以v作为前 缀),用于显示,例如( v1.0 ) |
${spring-boot.version} | 当前Spring Boot的版本号,例 如 2.0.4.RELEASE |
${spring-boot.formatted-version} | 当前Spring Boot被格式化后的版本号 (被括号包裹且以v作为前缀), 用于显 示,例如( v2.0.0.RELEASE ) |
${application.title} | MANIFEST.MF 中声明的应用title,例 如 Implementation-Title: MyApp 会 打印 MyApp |
示例:
banner.txt 内容加入 ${AnsiColor.Name} 设置banner颜色,加入${spring-boot.version}显示当前SpringBoot版本号。
注:这里 ${AnsiColor.Name}的作用范围只对 ${AnsiColor.Name} 以下的内容有效。
运行效果:
3、通过编程方式实现Banner
除了创建banner文件之外,spring boot 还提供了一个接口org.springframework.boot.Banner,它的实例可以被传给SpringApplication的setBanner(banner)方法。我们只需要实现Banner接口的printBanner方法,并使用SpringBootApplication.setBanner(…) 方法设置我们自己的Banner实例即可。
4、关闭Banner
当然,如果我们不喜欢Banner的打印,也可以将其关闭。关闭方法如下:
1)在application.properties进行配置
spring.main.banner-mode=off
//spring.main.show-banner=false//已经过时
2)在SpringApplication中设置
public static void main(String[] args) {
SpringApplication application = new SpringApplication(HellospringbootApplication.class);
application.setBannerMode(Banner.Mode.OFF);
application.run(args);
}