Spring起動時のロゴをどうにかこうにかする


アプリ起動したときに出てくるあれね

環境

Spring Boot 2.2.2.RELEASE - 2.2.4.RELEASE
Kotlin 1.3.61
Gradle

環境は以下の記事のまんま

邪魔だから消す

src/main/resources/application.propertiesに以下を追加

# ロゴを消す
spring.main.banner-mode=off

modeにはいろいろあるみたい
デフォルトで全部の場所にロゴを出す

mode 概要
off どこにもロゴを出さない
console コンソールにしかロゴを出さない?
log ログにしかロゴを出さない?

off以外を指定しても表示されてる気がする・・・?書き方が間違ってるのかな・・・

ロゴを変えたい

src/main/resources配下に文字だけならbanner.txtを、
画像もほしかったらbanner.jpgを置いとく
対応してる画像の拡張子はjpgpnggifっぽい

文字間隔が広くてちょっと縦長だなぁ・・・

テキストに入れた文字はこれ

banner.txt
がぶがぶー

結果は

うーん・・・
文字コードもUTF-8のはずなんだけどなぁ・・・

banner.txtの文字コードがUTF-8以外の場合はsrc/main/resources/application.propertiesに以下を追加

application.properties
spring.banner.charset=SJIS

結果は・・・

うーん・・・・・

banner.txtで使える変数

banner.txt
Application Version : ${application.version}
Application Formatted Version : ${application.formatted-version}
Spring Boot Version : ${spring-boot.version}
Spring Boot Formatted Version : ${spring-boot.formatted-version}
Ansi Name : ${Ansi.NAME}
Ansi Color Name : ${AnsiColor.NAME}
Ansi Background Name : ${AnsiBackground.NAME}
Ansi Style Name : ${AnsiStyle.NAME}
Application Title : ${application.title}

結果は

どっかで指定しないと空文字扱いなのかな・・・?

banner.txtやbanner画像の場所を変更したい

少なくともsrc/main/resources/配下の階層じゃないとだめなのかな?

bannerフォルダを作ってその中に画像とかを入れてみた

src/main/resources/application.propertiesに以下を追加

application.properties

# banner.txtの場所を指定
spring.banner.location=/banner/banner.txt

# バナー画像の場所を指定
spring.banner.image.location=/banner/banner.jpg

いえーい

課題

  • ロゴの表示非表示の指定が甘い
  • banner.txtに日本語使えないのか?文字コード周りの調査不足
  • banner.txtで使える変数はどこで設定する?
  • banner.txtやbanner画像はresources配下じゃないとだめ?