Spring Boot 啟動Banner設定--啟動彩蛋
Spring Boot啟動時會顯示如下圖示:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.3.RELEASE)
如果有人不喜歡這個輸出,本文說一下怎麼修改。
1. 第一種方式:修改的時候,進行設定,在Application的main方法中:
SpringApplication application = new SpringApplication(App.class);
/*
* Banner.Mode.OFF:關閉;
* Banner.Mode.CONSOLE:控制檯輸出,預設方式;
* Banner.Mode.LOG:日誌輸出方式;
/
application.setBannerMode(Banner.Mode.OFF*);
application.run(args);
2. 第二種方式:修改banner.txt配置檔案
在src/main/resouces下新建banner.txt,在檔案中加入:
#這個是MANIFEST.MF檔案中的版本號
${application.version}
#這個是上面的的版本號前面加v後上括號
${application.formatted-version}
#這個是springboot的版本號
${spring-boot.version}
#這個是springboot的版本號
${spring-boot.formatted-version}
在resource
目錄下面放入一個banner.txt
檔案,Spring Boot啟動專案的時候就會優先啟動這個檔案中的內容。注意,不止在war包或者Fat Jar的resource目錄放置會起效果,在任一外掛的resource目錄放置也可以生效。當然這裡涉及到一個優先順序的問題,在war包或Fat Jar中放置的優先順序高於外掛jar包的。
3. 第三種方式:重寫介面Banner實現
SpringBoot提供了一個介面org.springframework.boot.Banner,他的例項可以被傳給SpringApplication的setBanner(banner)方法。如果你閒得不行非要著重美化這個命令列輸出的話,可以重寫Banner介面的printBanner方法。
4. 第四種方式:在application.properties進行配置
在application.proerpties進行banner的顯示和關閉:
### 是否顯示banner,可選值[true|false]
spring.main.show-banner=false
使用Spring Boot啟動的jar包總是會顯示一個Spring的圖示:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.3.RELEASE)
實際上Spring Boot在這個位置,放了一個彩蛋,我們是可以自定義這個圖示的。
我們可以在resource
目錄下面放入一個banner.txt
檔案,Spring Boot啟動專案的時候就會優先啟動這個檔案中的內容。
這裡給大家推薦兩個個字元畫生成的網站,我們可以利用生成的字串放入這個banner.txt
檔案:
“Spring”的這個字型使用的是線上生成工具中的“standard”型別的字型,字型可以在工具中選擇對比一下
比如我生成一個star wars
的圖示:
_______.___________. ___ .______
/ | | / \ | _ \
| (----`---| |----` / ^ \ | |_) |
\ \ | | / /_\ \ | /
.----) | | | / _____ \ | |\ \----.
|_______/ |__| /__/ \__\ | _| `._____|
____ __ ____ ___ .______ _______.
\ \ / \ / / / \ | _ \ / |
\ \/ \/ / / ^ \ | |_) | | (----`
\ / / /_\ \ | / \ \
\ /\ / / _____ \ | |\ \----.----) |
\__/ \__/ /__/ \__\ | _| `._____|_______/
這樣啟動的時候
但是僅僅是這樣看起來並不好看,還不如原來的圖示好看呢。實際上Spring Boot為這個彩蛋提供了不少美化功能。
Spring Boot提供了一個列舉類AnsiColor
,這個類可以控制banner.txt
中的字元顏色,而且非常容易使用。
比如我可以將字元設定成顏色:BRIGHT_YELLOW
${AnsiColor.BRIGHT_YELLOW}
_______.___________. ___ .______
/ | | / \ | _ \
| (----`---| |----` / ^ \ | |_) |
\ \ | | / /_\ \ | /
.----) | | | / _____ \ | |\ \----.
|_______/ |__| /__/ \__\ | _| `._____|
____ __ ____ ___ .______ _______.
\ \ / \ / / / \ | _ \ / |
\ \/ \/ / / ^ \ | |_) | | (----`
\ / / /_\ \ | / \ \
\ /\ / / _____ \ | |\ \----.----) |
\__/ \__/ /__/ \__\ | _| `._____|_______/
再重新啟動專案,啟動介面就會變成這個樣子:
類似 ${AnsiColor.BRIGHT_YELLOW}
這種表示式,其實可以放置多個,啟動介面上的顏色,總是會根據AnsiColor
的設定改變介面的顏色,這樣啟動的介面就會顯示多種不同的顏色了。
除了這樣美化的功能之外,啟動介面很重要的功能就是要告訴我們這個專案的一些重要資訊。
`${application.version}` 這個是`MANIFEST.MF`檔案中的版本號
`${application.formatted-version}` 這個是上面的的版本號前面加v後上括號
` ${spring-boot.version}` 這個是springboot的版本號
`${spring-boot.formatted-version}`同上
把以上資訊通過${}
放入banner.txt
中,就會打印出專案對應的資訊。
這裡放一個完整的demo:
${AnsiColor.BRIGHT_YELLOW}
_______.___________. ___ .______ ____ __ ____ ___ .______ _______.
/ | | / \ | _ \ \ \ / \ / / / \ | _ \ / |
| (----`---| |----` / ^ \ | |_) | \ \/ \/ / / ^ \ | |_) | | (----`
\ \ | | / /_\ \ | / \ / / /_\ \ | / \ \
.----) | | | / _____ \ | |\ \----. \ /\ / / _____ \ | |\ \----.----) |
|_______/ |__| /__/ \__\ | _| `._____| \__/ \__/ /__/ \__\ | _| `._____|_______/
${AnsiColor.BRIGHT_BLUE}
::: Project (version:${application.version}) ::: \(^O^)/ Spring-Boot ${spring-boot.version}
啟動就會是這一個樣子:
如果顏色沒有變,那麼還需要設定:spring.output.ansi.enabled=ALWAYS
在2016年的最後一天,借用Spring Boot的Banner
向各位程式猿同仁們問候一聲:Happy New Year
。
接下來我們就來介紹一下這個輕鬆愉快的自定義banner
功能。實現的方式非常簡單,我們只需要在Spring Boot工程的/src/main/resources
目錄下建立一個banner.txt
檔案,然後將ASCII字元
畫複製進去,就能替換預設的banner
了。
比如上圖中的輸出,就採用了下面的banner.txt
內容:
${AnsiColor.BRIGHT_GREEN}
## ## ### ######## ######## ## ## ## ## ######## ## ## ## ## ######## ### ########
## ## ## ## ## ## ## ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## #### #### ## ## ## ## ## #### ## ## ## ## ##
######### ## ## ######## ######## ## ## ## ## ###### ## ## ## ## ###### ## ## ########
## ## ######### ## ## ## ## #### ## ## ## ## ## ## ######### ## ##
## ## ## ## ## ## ## ## ### ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ######## ### ### ## ######## ## ## ## ##
${AnsiColor.BRIGHT_RED}
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
從上面的內容中可以看到,還使用了一些屬性設定:
`${AnsiColor.BRIGHT_RED}` :設定控制檯中輸出內容的顏色
`${application.version}` :用來獲取`MANIFEST.MF` 檔案中的版本號
`${application.formatted-version}` :格式化後的`${application.version}` 版本資訊
`${spring-boot.version}` :Spring Boot的版本號
`${spring-boot.formatted-version}` :格式化後的`${spring-boot.version}` 版本資訊
生成工具
如果讓我們手工的來編輯這些字元畫,顯然是一件非常困難的差事。所以,我們可以藉助下面這些工具,輕鬆地根據文字或圖片來生成用於Banner
輸出的字元畫。
年終彩蛋
最後,奉上程式猿必備Banner
“永不宕機佛祖”,祝大家:“新年快樂、永不宕機、永無Bug”!
${AnsiColor.BRIGHT_YELLOW}
////////////////////////////////////////////////////////////////////
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕機 永無BUG //
////////////////////////////////////////////////////////////////////
效果圖:
作者:蟬鳴的雨
連結:https://www.jianshu.com/p/bfbcabc4af1d
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。