javaweb前端框架,Spring Boot自定義Banner

 2023-11-16 阅读 29 评论 0

摘要:Spring Boot自定義Banner https://www.jianshu.com/p/a53f324c92f2 我們在啟動 SpringBoot 時,控制臺會打印 SpringBoot Logo 以及版本信息;這個操作是 SpringBoot 固定的還是可配置(自定義)的? . ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \

Spring Boot自定義Banner

https://www.jianshu.com/p/a53f324c92f2

我們在啟動 SpringBoot 時,控制臺會打印 SpringBoot Logo 以及版本信息;這個操作是 SpringBoot 固定的還是可配置(自定義)的?

  .   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::       (v1.5.12.RELEASE)

帶著這個疑問,翻閱了一下源碼發現這個操作還真可以自定義,SpringBoot 有一個接口org.springframework.boot.Banner?是專門來做這個操作的。我們可以實現這個接口來自定義打印 Banner 信息;但是不推薦自己去寫,因為這個不是什么重要的功能,沒必要把時間花在這上面,既然 SpringBoot 提供了這個功能,肯定為我們實現了。

  • org.springframework.boot.ResourceBanner

    javaweb前端框架。文本格式,SpringBoot 會讀取配置項banner.txtbanner.location,從配置項中獲取真實的文件地址;如果配置中沒有配置,會把配置項作為文件去加載;

  • org.springframework.boot.ImageBanner

    圖片格式,SpringBoot 加載配置項banner.image.location,從配置項中獲取真實的路徑,SpringBoot 會根據配置項的路徑加載文件。
    如果沒有配置banner.image.location,轉而依次加載banner.gifbanner.jpg、?banner.png這三個中存在的文件;

如果上面兩種都沒有配置,SpringBoot 就會加載默認的 Banner;也就是文章開頭介紹的方式。

接下來我會介紹在文本格式(ResourceBanner);

SpringBootVFS,環境:
操作系統:MacOS
SpringBoot版本:1.5.12.RELEASE

創建啟動類:
src/main/java/{package}/Application.java

@SpringBootApplication
public class Application {public static void main(String[] args) {// 啟動顏色格式化// 這不是唯一啟動顏色格式的方式,有興趣的同學可以查看源碼/*** 1. AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);* 2. 在`src/main/resources`目錄下新建文件`application.properties`,*    內容為:`spring.output.ansi.enabled=always`* * 重要:如果配置第二種方式,第一種方式就不會起作用*/AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);new SpringApplicationBuilder(Application.class)//.main(SpringVersion.class) // 這個是為了可以加載 Spring 版本.bannerMode(Banner.Mode.CONSOLE)// 控制臺打印.run(args);}
}

創建Banner文件
src/main/resource/banner.txt

${AnsiColor.BRIGHT_YELLOW}//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//            佛祖保佑       永不宕機     永無BUG                  //${AnsiColor.BRIGHT_RED}
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}

從上面的內容中可以看到,還使用了一些屬性設置:

  • ${AnsiColor.BRIGHT_RED}:設置控制臺中輸出內容的顏色,可以自定義,具體參考org.springframework.boot.ansi.AnsiColor
  • ${application.version}:用來獲取MANIFEST.MF文件中的版本號,這就是為什么要在Application.java中指定 SpringVersion.class
  • {application.formatted-version}:格式化后的{application.version}版本信息
  • ${spring-boot.version}:Spring Boot的版本號
  • {spring-boot.formatted-version}:格式化后的{spring-boot.version}版本信息

效果

css框架bootstrap,

spring-boot-banner.png

從效果圖看,我們定義的文本最后被上了顏色,顏色是如何轉換的,可以參考:顏色特效

生成工具

如果讓我們手工的來編輯這些字符畫,顯然是一件非常困難的差事。所以,我們可以借助下面這些工具,輕松地根據文字或圖片來生成用于Banner輸出的字符畫。

  • http://patorjk.com/software/taag
  • http://www.network-science.de/ascii/
  • http://www.degraeve.com/img2txt.php

參考來源:

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/173361.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息