一:场景描述
Springboot默认开启banner,在项目启动时会在控制台默认打印spring图案。
SpringBoot有一个接口org.springframework.boot.Banner实现这个操作。故我们可以实现这个接口来打印自定义banner信息,但是不推荐,因为这不是什么重要的功能,没必要,既然SpringBoot提供了这个功能,肯定为我们实现了。
二:自定义Banner
在Springboot工程的src/main/resources目录下新建banner.txt文件,将想要显示的ASCII字符复制到banner.txt文件中,启动工程即可。
banner.txt文件中的内容如下:
${AnsiColor.BRIGHT_RED}
___ ___ _ _
| \/ | | | | |
| . . |_ __ _ __ ___ | |__ ___ __| |_ _
| |\/| | '__| '_ \ / _ \| '_ \ / _ \ / _` | | | |
| | | | | _| | | | (_) | |_) | (_) | (_| | |_| |
\_| |_/_|(_)_| |_|\___/|_.__/ \___/ \__,_|\__, |
__/ |
|___/
${AnsiStyle.NORMAL}${AnsiColor.CYAN}欢迎阅读,作者:${application.author}
${AnsiColor.YELLOW}
Springboot的版本号:${spring-boot.version}
三:参数详解
${AnsiColor.BRIGHT_RED}:设置控制台输出的内容颜色
${application.author}:application.yml文件中自定义的配置变量
${spring-boot.version}:Springboot的版本号
下面介绍两个个性化制作ASCII字符和图案的网址:
定制化ASCII字符:http://network-science.de/ascii/
定制化ASCII图片:https://www.degraeve.com/img2txt.php
Spring提供了三个枚举类来设定字符的样式:
- AnsiColor:设置字符的前景色
- AnsiBackground:设置字符的背景色
- AnsiStyle:控制加粗、斜体、下划线等等。
四:Banner加载顺序
在Classpath下依次寻找banner.gif,banner.jpg,banner.png,banner.txt文件,先找到谁就用谁。若都没有找到的话, 用默认的SpringBootBanner。
五:关闭Banner图案
- 在启动类中进行关闭
package com.nobody;
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
}
}
- 配置文件中设置关闭
spring:
main:
banner-mode: off
如果启动类跟配置文件中都配置了对banner开关的设置,配置文件中设置的banner开关会优先于启动类中设置的开关。