2 回答

TA貢獻1963條經驗 獲得超6個贊
依次在 Classpath 下找 文件 banner.gif, banner.jpg, 和 banner.png, 先找到誰就用誰
繼續 Classpath 下找 banner.txt
上面都沒有找到的話, 用默認的 SpringBootBanner, 就是我們最常見到的那個!

TA貢獻2003條經驗 獲得超2個贊
Spring Boot 默認尋找 Banner 的順序是:
依次在 Classpath 下找 文件 banner.gif , banner.jpg , 和 banner.png , 先找到誰就用誰
繼續 Classpath 下找 banner.txt
上面都沒有找到的話, 用默認的 SpringBootBanner , 就是我們最常見到的那個
既然是 Classpath 的資源, 我們按照 Maven 項目的慣例, 是把 banner.* 文件放在 src/main/resources/ 目錄下.
我們可以用屬性 banner.location 設定 Spring Boot 在不同于 Classpath 下找以上 banner.txt 文件. banner.charset 設定 banner.txt 的字符集, 默認為 UTF-8 . 屬性. banner.image.location 用于指定尋找 banner.(gif|jpg|png) 文件的位置.
如果同時存在圖片(如 banner.jpg) 和 banner.txt , 則它們會同時顯示出來, 先圖片后文字. 但同時存在多個圖片 banner.(gif|jpg|png) , 則只會顯示第一張圖片.
下面依次介紹 圖片 Banner, 文字 Banner, 和代碼定制法, 其中 文字 Banner 只須在 src/main/resources 加上 banner.txt 應該是最簡單實用的, 其次就是用簡潔的 banner 圖片 .
圖片 Banner
我們或許有疑問了, 對于圖片文件 banner.(gif|jpg|png) 文件, Spring Boot 該如何在控制臺顯示. 由于我們的控制臺只管顯示字符, 所以 Spring Boot 會盡力把這三種圖片文件轉換成字符表示, 還帶有 AnsiColor 顏色的.
想要知道 Spring Boot 的 ImageBanner 對圖片的理解程序到底有多強, 可以試下把這張圖片放到 src/main/resources/ 下,
然后重新啟動一下我們的 Spring Boot 程序, 可以看到如下效果
把圖片轉換成帶色的字符顯示已經很不錯的了, 當然你不能太難為 Spring Boot 了, 圖片色彩稍復雜肯定是一團糟. 圖片到文字的轉換的實際效果可以嘗試 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 . 可取值請參考各自相應的類, org.springframework.boot.ansi.(AnsiColor|AnsiStyle|AnsiStyle) . 分別用于定義字符在控制臺下顯示的顏色, 風格與背景色.
這里有一個 banner.txt , 內容是
${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}
執行 Spring Boot 應用后輸出對應的 Banner 如下圖
另外, 如果我們不滿足于定義在 banner.txt 中的文字原本平實的顯示出來, 也可以像默認的
Spring Boot 的 Banner 那樣, 把字符串轉換為特殊字符組成的藝術字體, 這還有一個專用名詞 TAAG(Text to
- 2 回答
- 0 關注
- 603 瀏覽
添加回答
舉報