每当我们启动Spring Boot应用程序时,都会显示如下所示的文本消息。 这称为横幅。
现在,如果我们可以创建一个特定于我们的Spring Boot应用程序的自定义横幅并使用它代替默认的Spring Boot横幅,那将不是一件很棒的事。 有很多方法可以生成和使用Spring Boot定制横幅。
我们将详细介绍以下主题,
- 自定义Spring Boot标语生成器和生成
- 配置Spring Boot应用程序以使用自定义横幅
- 禁用Spring启动横幅
1.定制的Spring Boot标语生成器和生成
为了在应用程序启动时显示自定义横幅,我们需要一个横幅。
我们可以自行在文本文件中创建自定义横幅,可以以编程方式创建或使用各种在线免费工具。
通过使用Ascii宪章,我们可以在纯文本文件中使用横幅,也可以使用图像格式。
纯文本格式的横幅广告加载速度更快,维护也更容易。 因此,在此博客中,我们将使用文本横幅,但您可以根据自己的选择使用。
1.1 Spring Boot自定义横幅在线生成器:
在线有很多Ascii标语生成器工具,例如,
- https://devops.datenkollektiv.de/banner.txt/index.html
- http://www.network-science.de/ascii/
- https://textkool.com/cn/ascii-art-generator?hl=full&vl=full&font=Red%20Phoenix&text= stacktraceguru
- http://patorjk.com/software/taag/#p=display&f=Doom&t=stacktraceguru
- https://manytools.org/hacker-tools/ascii-banner/
- https://www.kammerl.de/ascii/AsciiSignature.php
1.2程序化横幅生成:
Spring Boot框架提供了Banner接口,该接口允许我们创建横幅。
我们需要一个实现Banner接口并重写printBanner()方法的类,以配置自定义Banner。
import java.io.PrintStream; import org.springframework.boot.Banner; import org.springframework.core.env.Environment; public class CustomBanner implements Banner { @Override public void printBanner(Environment arg0, Class<?> arg1, PrintStream arg2) { arg2.println( "###############################" ); arg2.println( "###### Spring boot banner ######" ); arg2.println( "###############################" ); } }
最需要注意的是,只有在属性或标题文件中未配置标题时,才使用在printBanner()方法中配置的标题。
在横幅中,我们可以将以下占位符用于动态值。
变量 | 描述 |
---|---|
$ {application.version} | 显示应用程序版本号 例如1.0 |
$ {application.formatted-version} | 显示带有括号和v的应用程序版本号 例如(v1.0) |
$ {spring-boot.version} | 显示Spring Boot版本 例如2.2.7.RELEASE |
$ {spring-boot.formatted-version} | 显示带有括号和v的Spring Boot版本 例如(v2.2.7.RELEASE) |
$ {application.title} | 显示在MANIFEST.MF中声明的应用程序标题。 例如MyApp。 |
2.配置Spring Boot应用程序以使用自定义横幅
生成横幅后,我们需要使其可供应用程序使用。
默认情况下,spring boot使用src / main / resources目录中名为banner.txt或banner。(png | jpg | gif)的文件。
我们可以在此位置存储名称为banner.txt的文件。
我们还可以使用任何文件名将其存储在其他位置。
如果我们决定存储在src / main / resources / banner.txt之外的其他位置,则需要配置文件位置,以便应用程序可以使用它。
2.1我们可以使用以下属性进行配置:
$ {application.version}
2.2通过程序配置标题:
我们可以使用setBanner()方法在SpringApplication类中配置横幅。
$ {application.version}
3.禁用Spring Boot标语
如果您不想要横幅,也可以禁用横幅。
在Spring启动中,我们可以使用配置文件或通过程序禁用横幅。
使用配置文件禁用横幅是最灵活和推荐的方法,因为它更容易,并且可以根据需要轻松还原。
3.1禁用使用配置文件:
Spring Boot支持多种配置应用程序的方式。 就像使用application.properties,application.yaml文件一样。
3.1.1使用application.properties文件禁用横幅:
如果我们将以下行添加到application.properties文件,则启动横幅将被禁用
$ {application.version}
3.1.2使用application.yaml文件禁用横幅:
如果我们在application.yaml文件中添加以下行,则启动横幅将被禁用
$ {application.version}
从应用程序代码中禁用横幅:
在Spring启动代码中,我们可以使用SpringApplication或SpringApplicationBuilder配置应用程序。 我们还可以在sring引导应用程序中使用java 8功能lambda表达式 。
3.2.1使用SpringApplication禁用横幅:
$ {application.version}
3.2.2使用SpringApplicationBuilder禁用横幅:
$ {application.version}
快速阅读
- 标语是在Spring启动应用程序启动时显示的精美文字消息
- 我们可以自己创建自定义横幅,也可以使用在线免费工具生成
- 标语可以是文本或图像格式
- 文字格式横幅广告加载速度更快
- Spring Boot横幅可以具有动态值的占位符
- 我们也可以禁用spring boot banner
参考文献:
- https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-banner
- https://www.javacodemonk.com/custom-banner-in-spring-boot-93a85044
- https://www.concretepage.com/spring-boot/spring-boot-custom-banner-example
其他话题
- SAM功能界面
- Java 8使用Optional类
- Java 8方法参考
- Mockito whenthen vs when答案
翻译自: https://www.javacodegeeks.com/2020/05/spring-boot-custom-banner-generation.html