SpringBoot自定義Banner使用詳解
1. 什么是 Banner
啟動 Spring Boot 時,幾乎總是能在控制臺上方看到如下橫幅,這個也叫字符畫、英文ASCII藝術(shù)字

2. 如何修改 Banner
默認(rèn)情況下,只需在 resources 根目錄(準(zhǔn)確說是 classpath)下新建一個 banner.txt 文件,內(nèi)容即為 Banner

在 banner.txt 文件中,可以使用可用的任何鍵 Environment 以及以下任何占位符
| Variable | Description |
| ${application.version} | 應(yīng)用程序的版本號,例如1.0 |
| ${application.formatted-version} | 用括號括起來并以 v 為前綴,例如(v1.0) |
| ${spring-boot.version} | 正在使用的 Spring Boot 版本。例如3.0.5 |
| ${spring-boot.formatted-version} | 同理,(v3.0.5) |
3. IDEA 中演示
banner.txt 內(nèi)容如下,使用一個經(jīng)典的佛祖保佑 Banner,并演示占位符的使用
${spring-boot.formatted-version}
————————————————————————————————————————————————————————————————————
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕機(jī) 永無BUG //
————————————————————————————————————————————————————————————————————運(yùn)行如下,符合預(yù)期

4. 快速生成 Banner
對于復(fù)雜的 Banner(譬如上面的佛祖),手打顯然是很浪費(fèi)時間精力的,通常會借助一些 Banner 生成工具快速生成
推薦一個 Banner 在線生成工具
可以將輸入的文本轉(zhuǎn)換為 Banner,并且有多種字體可選
5. 指定 banner.txt 的位置
上面提到默認(rèn)情況下,banner.txt 必須放在 classpath(resources 根目錄 )下方可生效,假設(shè)現(xiàn)在需要放在 resources/static 目錄下,在 application.yml 添加如下配置項(xiàng)即可
spring:
banner:
# 或者 static/banner.txt
location: classpath:static/banner.txt
需要說明的是,在沒有顯式設(shè)置上述配置項(xiàng)時,Banner 文件只能為 banner.txt;顯式設(shè)置后,Banner 文件名就可以為 xxx.txt
6. 在 Spring Boot 2 中的說明
6.1 圖片生成 Banner
在 3.0.x 的版本中,Banner 僅能通過文本文件(banner.txt)的方式設(shè)置,但在 2 的版本中,除了文本文件,還可以通過圖片的方式設(shè)置,查看 spring.banner 下的配置項(xiàng)就可以發(fā)現(xiàn)

通過配置項(xiàng) spring.banner.image.location 的默認(rèn)值可以看出,只需在 classpath 下放入一個 banner.gif 圖片即可,經(jīng)過測試,除了 gif 格式的圖片,jpg、jpg 也能被識別,實(shí)際效果就是將圖片轉(zhuǎn)換為字符畫
以下圖為例(盒馬.jpg)

spring:
banner:
image:
location: static/盒馬.jpg
width: 38
由于默認(rèn)寬度(76)下在控制臺中生成的Banner過大,不便截圖,故此處指定了 width 屬性
生成效果:

可以看出,生成的 Banner 和原圖十分相似,甚至連顏色都還原了(用了某種算法)
6.2 增強(qiáng)顯示效果
還可以進(jìn)一步增強(qiáng)顯示效果,通過設(shè)置 spring.banner.image.pixelmode,將渲染圖像時使用的像素模式由默認(rèn)的 text 模式改為 block 模式
spring:
banner:
image:
location: static/盒馬.jpg
width: 38
pixelmode: block
生成效果:

6.3 更多配置項(xiàng)
至于 spring.banner.image 的其他屬性不再逐一演示,因?yàn)槭趾唵?,參照文檔一試便知,附上

遺憾的是,在 Spring Boot 3 中有關(guān) spring.banner.image.* 的配置項(xiàng)均已棄用,該功能已被剔除,僅支持文本文件的方式生成 Banner

7. 補(bǔ)充
在 2 版本中,可以同時指定文本文件和圖片生成 Banner。
若同時指定,控制臺 Banner 打印順序?yàn)椋何谋疚募?、圖片
到此這篇關(guān)于SpringBoot自定義Banner使用詳解的文章就介紹到這了,更多相關(guān)SpringBoot自定義Banner內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatis-plus如何根據(jù)任意字段saveOrUpdateBatch
MyBatisPlus saveOrUpdateBatch默認(rèn)按主鍵判斷操作類型,若需按其他唯一字段(如agentId、period、type組合)判斷,需在service層重寫方法,通過predicate定義插入條件并結(jié)合consumer執(zhí)行更新邏輯,適用于批量和單條數(shù)據(jù)操作場景2025-09-09
Java使用EasyExcel模版導(dǎo)出詳細(xì)操作教程
業(yè)務(wù)中經(jīng)常需要按照一個特定的模板導(dǎo)出特定內(nèi)容,有些單元格還要求特殊的格式,所以下面這篇文章主要給大家介紹了關(guān)于Java使用EasyExcel模版導(dǎo)出的相關(guān)資料,需要的朋友可以參考下2023-10-10
springBoot發(fā)布https服務(wù)及調(diào)用的過程詳解
文章介紹了如何在Spring Boot中配置HTTPS服務(wù),包括生成自簽名證書和配置SSL證書的位置和密碼,此外,還討論了如何在Docker容器中啟動HTTPS服務(wù),以及如何通過HTTP請求調(diào)用HTTPS服務(wù)并跳過證書校驗(yàn),感興趣的朋友跟隨小編一起看看吧2025-11-11
kafka topic 權(quán)限控制(設(shè)置刪除權(quán)限)
大家都知道Kafka是一個消息隊(duì)列,把消息放到隊(duì)列里邊的叫生產(chǎn)者,從隊(duì)列里邊消費(fèi)的叫消費(fèi)者。今天通過本文給大家介紹kafka topic 權(quán)限控制的相關(guān)知識,感興趣的朋友一起看看吧2021-11-11
Spring Boot 2.x/3.x/4.x 版本兼容的最新MyBatis-Plus依賴
本文主要介紹了Spring Boot 2.x/3.x/4.x 版本兼容的最新MyBatis-Plus依賴,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-03-03
SpringBoot自定義RestTemplate的攔截器鏈的實(shí)戰(zhàn)指南
在項(xiàng)目開發(fā)中,RestTemplate作為Spring提供的HTTP客戶端工具,經(jīng)常用于訪問內(nèi)部或三方服務(wù),但在實(shí)際項(xiàng)目中,我們往往需要對請求進(jìn)行統(tǒng)一處理,所以本文給大家介紹了SpringBoot自定義RestTemplate的攔截器鏈的實(shí)戰(zhàn)指南,需要的朋友可以參考下2025-07-07
Springboot快速集成sse服務(wù)端推流(最新整理)
SSE?Server-Sent?Events是一種允許服務(wù)器向客戶端推送實(shí)時數(shù)據(jù)的技術(shù),它建立在?HTTP?和簡單文本格式之上,提供了一種輕量級的服務(wù)器推送方式,通常也被稱為“事件流”(Event?Stream),這篇文章主要介紹了Springboot快速集成sse服務(wù)端推流(最新整理),需要的朋友可以參考下2024-02-02
elasticsearch分布式及數(shù)據(jù)的功能源碼分析
這篇文章主要為大家介紹了elasticsearch分布式及數(shù)據(jù)功能源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04

