Spring Boot の起動バナーを変更する

Spring Bootのバナーを変更する

Spring Boot のバナー変更方法です。

はじめに

GW明けの感覚が抜けない方もいるかと思われる今日この頃、みなさまいかがお過ごしですか?

最近 Spring Boot を触っているんですが、今回のはちょっとしたネタ記事です。

Spring Boot はJavaのアプリケーションフレームワークです。現在は最も普及しているJavaのアプリケーションフレームワークといってよいのではないでしょうか。

この Spring Boot 起動時に色々とログを出力するのですが、その中に Spring のバナーを出力するというものがあります。

デフォルトでは以下のようなバナーが出力されますが、これを変更します。

環境

環境は以下です。

Spring Boot 1.3.5

つい先日リリースされた1.3.5で確認していますが、他バージョンでも同様の手順で可能だと思います。

手順

バナーの変更方法に関しては 23.1 Customizing the Banner に方法が載っています。

バナーを変更する場合 banner.txt をクラスパスに追加するか、アプリケーション設定でバナーファイルの場所を指定します。

プロパティ設定する値
banner.locationバナーファイルの場所
banner.charsetファイルの文字コード (デフォルトはUTF-8)

実際の手順

STS (Spring Tool Suite) を利用して Spring Boot プロジェクトを作成しているのを前提とした手順になります。

  1. banner.txt の作成
    banner.txt を作成します。クラスパスに追加すればよいので resources ディレクトリ直下 (application.properties や application.yml ファイルが存在するディレクトリ) に作成すればOKです。
  2. テキストファイルを編集して表示したい内容に書き換えます。
    banner.txt 内では以下の変数が利用できます。
    ${application.version}アプリケーションのバージョン
    ${application.formatted-version}アプリケーションの(整形した)バージョン
    ${spring-boot.version}Spring Bootのバージョン
    ${spring-boot.formatted-version}Spring Bootの(整形した)バージョン
    ${Ansi.NAME}ANSIエスケープコードを記述する場合に利用します。
    ${AnsiColor.NAME}ANSI色を指定する場合に利用します。利用可能な値は AnsiColor を参照
    ${AnsiBackground.NAME}ANSI背景色を指定する場合に利用します。利用可能な値は AnsiBackground を参照
    ${AnsiStyle.NAME}ANSI文字スタイルを指定する場合に利用します。利用可能な値は AnsiStyle を参照
    ${application.title}アプリケーションのタイトル

    ※幾つかの変数は MANIFEST.MF の値を参照しています。Eclipseで Run/Debug している場合 MANIFEST.MF を参照しないため、これらの値は表示されません。
    mvn package してwar生成→デプロイした場合には MANIFEST.MF が生成されるので、値が表示されるものと思われます ( 未確認 )。

    ※Ansi...系の変数の動作も未確認です。
    EclipseのコンソールはAnsi Colorをサポートしていないらしいため、色の変更を試す場合、ANSI Escape in Console プラグイン辺りを利用すれば確認できるのではないかと思われます。

バナーを表示しない方法

ついでにバナー自体を表示しない方法も書いておきます。

アプリケーション設定に spring.main.show-banner 設定を記述すればOKです。

spring.main.show-banner: false

確認

banner.txt の編集が完了したら、Spring Boot アプリケーションを実行します。

Spring Boot Banner

今の心境を表現してみました :-p

まとめ

クレーム入らない程度に遊び心発揮してみてもいいかも。 → 自己責任でどうぞ