Spring Boot自定义Banner

自定义Banner

通过在classpath下添加一个 banner.txt 或设置 banner.location 来指定相应的文件可以改变启动过程中打印的banner,方式非常简单,只需要在Spring Boot工程的 /src/main/resources 目录下创建一个 banner.txt 文件,然后将ASCII字符画复制进去,就能替换默认的banner了。

如果这个文件有特殊的编码,可以使用 banner.encoding 设置它(默认为UTF-8)。除了文本文件,也可以添加一个 banner.gifbanner.jpgbanner.png 图片,或设置 banner.image.location 属性。图片会转换为字符画(ASCII art)形式,并在所有文本banner上方显示。

banner.txt中可以使用如下占位符:

变量 描述
${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.0.RELEASE
${spring-boot.formatted-version} 当前Spring Boot被格式化后的版本号(被括号包裹且以v作为前缀), 用于显示,例如( v2.0.0.RELEASE )
${Ansi.NAME}(或${AnsiColor.NAME},${AnsiBackground.NAME},${AnsiStyle.NAME}) NAME代表一种ANSI编码,如:${AnsiColor.BRIGHT_RED}
${application.title} MANIFEST.MF 中声明的应用title,例如 Implementation-Title: MyApp 会打印 MyApp

如果想以编程的方式产生一个banner,可以使用 SpringBootApplication.setBanner(…) 方法,并实现 org.springframework.boot.Banner 接口的 printBanner() 方法。

也可以使用 spring.main.banner-mode 属性决定将banner打印到何处, System.out (console),配置的logger(log)或都不输出(off)。

打印的banner将注册成一个名为 springBootBanner 的单例bean。

生成工具

banner.txt 里的字符画手工的来编辑是一件非常困难的事。所以,借助下面这些工具,可以很容易地根据文字或图片来生成用于Banner输出的字符画。