SpringBoot管理Banner
Posted lxw_thinker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot管理Banner相关的知识,希望对你有一定的参考价值。
一、引言
在springboot项目启动的时候,会在console控制台中打印出一个SPRING
的图案。有时候为了减少日志输出以及控制台的输出,就需要将这些给去除;有时候需要换上个人的标签等标识,就需要将其自定义为个人标识。
二、Banner输出
三、控制Banner
- SpringApplication 类提供了一种通过运行 main() 方法的方便方式来引导Spring应用。
@SpringBootApplication public class GoodthinkApplication { //默认开启方法 public static void main(String[] args) { SpringApplication.run(GoodthinkApplication.class, args); } //关闭方法 public static void main(String[] args) { SpringApplication app = new SpringApplication(GoodthinkApplication.class); //关闭bannar app.setBannerMode(Banner.Mode.OFF); app.run(args); } // 自定义启动方式 public static void main(String[] args) { new SpringApplicationBuilder(App.class) .bannerMode(Banner.Mode.OFF) .build() .run(args); } }
通过启动main方法,就会默认开启Banner显示。默认情况下,将显示 INFO 级别的日志信息,包括启动应用用户的一些相关的启动详细信息。
2. yml文件
spring: main: # banner显示方式 banner-mode: console #这是默认方式--在控制台显示 # "off" 关闭banner,这是最简单的方式,注意要添加双引号 # log,使用配置的logger
四、自定义Banner
如果不喜欢默认的Banner,可以更改为自定义的图案或者文本进行打印输出。
自定义后的Banner如图示:
方法: 在classpath(即在resources下)中添加中一个banner.txt文件,将或者banner.location设置到此类文件的位置来更改启动时的Banner。如果文件采用了不一样的编码,设置banner.charset(默认是UTF-8)来解决。除了使用文本文件,还可以将banner.gif,banner.jpg或者banner.png图像文件添加到您的classpath中,或者设置一个banner.image.location属性。图像将会被转换成ASCII的表现形式并打印在任何文本banner上方。
在 banner.txt 文件中使用占位符可以输出相应的信息:
${spring-boot.version} 输出当前项目的版本号 ${spring-boot.formatted-version} Spring Boot版本格式化之后显示(用括号括起来,以 v 为前缀)。例如 (v1.5.4.RELEASE) ${AnsiColor.GREEN} 自定义输出文本的颜色,这边是绿色(其他:RED,YELLOW,BLUE等) ${application.version} 在 MANIFEST.MF 中声明的应用版本号。例如,Implementation-Version: 1.0 将被打印为 1.0 ${application.formatted-version} 在 MANIFEST.MF 中声明的应用版本号,格式化之后打印(用括号括起来,以 v 为前缀) 例如 (v1.0) ${application.title} 在 MANIFEST.MF 中声明的应用标题,例如 Implementation-Title: MyApp 打印为 MyApp
如果要以编程的方式生成banner,可以使用 SpringApplication.setBanner() 方法。使用 org.springframework.boot.Banner 接口并实现自己的 printBanner() 方法。打印的banner将注册为名为 springBootBanner 的单例bean。
以上是关于SpringBoot管理Banner的主要内容,如果未能解决你的问题,请参考以下文章
我写springboot定制启动的banner.txt文件时使用 $AnsiColor.BRIGHT_YELLOW代码,为啥颜色没有改变