2 回答

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
依次在 Classpath 下找 文件 banner.gif, banner.jpg, 和 banner.png, 先找到誰就用誰
繼續(xù) Classpath 下找 banner.txt
上面都沒有找到的話, 用默認(rèn)的 SpringBootBanner, 就是我們最常見到的那個(gè)!

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
Spring Boot 默認(rèn)尋找 Banner 的順序是:
依次在 Classpath 下找 文件 banner.gif , banner.jpg , 和 banner.png , 先找到誰就用誰
繼續(xù) Classpath 下找 banner.txt
上面都沒有找到的話, 用默認(rèn)的 SpringBootBanner , 就是我們最常見到的那個(gè)
既然是 Classpath 的資源, 我們按照 Maven 項(xiàng)目的慣例, 是把 banner.* 文件放在 src/main/resources/ 目錄下.
我們可以用屬性 banner.location 設(shè)定 Spring Boot 在不同于 Classpath 下找以上 banner.txt 文件. banner.charset 設(shè)定 banner.txt 的字符集, 默認(rèn)為 UTF-8 . 屬性. banner.image.location 用于指定尋找 banner.(gif|jpg|png) 文件的位置.
如果同時(shí)存在圖片(如 banner.jpg) 和 banner.txt , 則它們會同時(shí)顯示出來, 先圖片后文字. 但同時(shí)存在多個(gè)圖片 banner.(gif|jpg|png) , 則只會顯示第一張圖片.
下面依次介紹 圖片 Banner, 文字 Banner, 和代碼定制法, 其中 文字 Banner 只須在 src/main/resources 加上 banner.txt 應(yīng)該是最簡單實(shí)用的, 其次就是用簡潔的 banner 圖片 .
圖片 Banner
我們或許有疑問了, 對于圖片文件 banner.(gif|jpg|png) 文件, Spring Boot 該如何在控制臺顯示. 由于我們的控制臺只管顯示字符, 所以 Spring Boot 會盡力把這三種圖片文件轉(zhuǎn)換成字符表示, 還帶有 AnsiColor 顏色的.
想要知道 Spring Boot 的 ImageBanner 對圖片的理解程序到底有多強(qiáng), 可以試下把這張圖片放到 src/main/resources/ 下,
然后重新啟動一下我們的 Spring Boot 程序, 可以看到如下效果
把圖片轉(zhuǎn)換成帶色的字符顯示已經(jīng)很不錯(cuò)的了, 當(dāng)然你不能太難為 Spring Boot 了, 圖片色彩稍復(fù)雜肯定是一團(tuán)糟. 圖片到文字的轉(zhuǎn)換的實(shí)際效果可以嘗試 Spring Boot 官方的 Banner Generator .
文字 Banner
如果使用 banner.txt 定義 Banner 的話, 里面可以使用如下變量
${application.version} , ${application.formatted-version} , ${spring-boot.version} , ${Ansi.NAME} 或 ${AnsiColor .NAME} , ${AnsiBackground.NAME} , ${AnsiStyle.NAME} , ${application.title} , 這些具體定義請參考 Spring Boot 的官方文檔 Customizing the Banner .
這里說一下 AnsiColor , AnsiStyle , 和 AnsiBackground 的用法, 它們是各種 Ansi 控制符 , 見 Wiki ANSI escape code . 可取值請參考各自相應(yīng)的類, org.springframework.boot.ansi.(AnsiColor|AnsiStyle|AnsiStyle) . 分別用于定義字符在控制臺下顯示的顏色, 風(fēng)格與背景色.
這里有一個(gè) banner.txt , 內(nèi)容是
${AnsiColor.RED}${AnsiStyle.ITALIC}I'm Red and italic ${AnsiStyle.NORMAL}${AnsiColor.DEFAULT}
${AnsiColor.BLUE}${AnsiBackground.YELLOW}I'm Blue with yellow background${AnsiBackground.DEFAULT}${AnsiColor.DEFAULT}
${AnsiColor.GREEN}Powered by ${spring-boot.formatted-version}${AnsiColor.DEFAULT}
執(zhí)行 Spring Boot 應(yīng)用后輸出對應(yīng)的 Banner 如下圖
另外, 如果我們不滿足于定義在 banner.txt 中的文字原本平實(shí)的顯示出來, 也可以像默認(rèn)的
Spring Boot 的 Banner 那樣, 把字符串轉(zhuǎn)換為特殊字符組成的藝術(shù)字體, 這還有一個(gè)專用名詞 TAAG(Text to
- 2 回答
- 0 關(guān)注
- 605 瀏覽
添加回答
舉報(bào)