专业的编程技术博客社区

网站首页 > 博客文章 正文

spring-boot中banner的各种玩法和实现原理详解(一)

baijin 2024-08-15 00:38:17 博客文章 7 ℃ 0 评论

spring-boot项目在每一次启动的时候都会展示一个如下图所示的Banner,由于启动时会输出大量的日志,这个Banner往往在我们还没有看清内容的时候就被其后输出的日志给挤出了我们的视野。

一个小小的Banner也是包含了很多有意思的功能,接下来将会详细的介绍一下spring-boot中的Banner的各种玩法以及它的实现原理。

Banner有哪几种

在spring-boot中总共有三种内置的Banner实现,分别是:

  • SpringBootBanner,默认的Banner
  • ResourceBanner,从文本资源中加载的Banner
  • ImageBanner,从图片文件中加载的Banner
  • 自定义的Banner,可以通过
org.springframework.boot.SpringApplication#setBanner

方法设置自定义的Banner。

这些不同的Banner有些是可以共存,有些却只能生效其中一个,他们的优先级如下所示:

ImageBanner > ResourceBanner >> 自定义的Banner >> SpringBootBanner

默认的Banner

SpringBootBanner是spring-boot工程默认的输出Banner,在我们不做任何配置的时候就是输出这个Banner的内容。它的输出内容也非常的简单,只有一个Spring的图案和一个spring-boot的版本信息,我们也不能对其中的内容进行任何的定制。

文本资源Banner

在spring-boot工程中我们可以使用两种方式来指定文本资源形式的Banner:

  • 通过环境属性'spring.banner.location'来指定Banner文本的位置
  • 把banner.txt资源文件作为Banner的内容,只有环境属性中没有找到对应配置的时候才会查找banner.txt文本

文本文件内容:

Banner输出内容:

在文本形式的Banner中,我们可以使用很多属性来控制输出的文本颜色、背景色、文字格式等各种内容。

图片资源Banner

图片资源Banner也有两种指定方式:

  • 通过'spring.banner.image.location'环境属性来直接指定文件的位置
  • 按照'banner.gif'、'banner.jpg'、'banner.png'的优先级查找对应的资源文件

图片文件内容:

Banner输出:

自定义Banner类

除了上面介绍的使用spring-boot提供的Banner实现外,我们也可以实现完全自定义的Banner。

只需要实现接口

org.springframework.boot.Banner

并把对应的实例设置给SpringApplication的banner启动的时候就会使用我们定义的banner类了。

实现代码:

启动输出:

至此spring-boot Banner的基本用法就介绍到这里,下一篇文章将会详细介绍Banner的实现原理。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表