一:場景描述
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開關會優先于啟動類中設定的開關。