LoginSignup
20
6

More than 5 years have passed since last update.

Spring Bootの起動バナーの変更

Posted at

概要

Spring Bootでは起動時のバナーを変更することができます。
テキストファイルや画像ファイルによる単純な置き換えから、
カスタマイズ性の高いロジックによる変更などが用意されています。

テキストファイルでバナー表示

/src/main/resourcesにbanner.txtを配置することで起動時にバナー表示されます。
スクリーンショット 2016-11-21 2.31.48.png

スクリーンショット 2016-11-21 2.32.26.png

テキスト内の変数として、Spring Bootのバージョンを表示する${spring-boot.version}や
アプリケーションのバージョンを表示する${application.version}などが用意されています。(*1)
また${AnsiColor.BLUE}などで文字色を変更することもできます。

*1: MANIFEST.MFより読み込まれるためEclipseなどから起動した場合表示されません。

画像から作成したバナーを表示

/src/main/resourcesにbanner.gif, banner.jpg, banner.png等のファイルを配置すると、起動の際にアスキーアート化して表示されます。

スクリーンショット 2016-11-21 2.38.23.png

スクリーンショット 2016-11-21 2.39.14.png

ロジックで作成したバナー表示

org.springframework.boot.Bannerを実装したClassを用意することで、独自ロジックでバナーを表示することができます。

ランダムなキャラクターでCowsayの実装例

SpringBootBannerSampleApplication.java
@SpringBootApplication
public class SpringBootBannerSampleApplication {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(SpringBootBannerSampleApplication.class);
        app.setBanner(new CustomBanner());
        app.run(args);
    }
}
CustomBanner.java
public class CustomBanner implements Banner {

    private static final String SEPARATOR = System.getProperty("line.separator");

    @Override
    public void printBanner(Environment environment, Class<?> sourceClass, PrintStream printStream) {

        String[] charList = Cowsay.say(new String[]{"-l"}).split(SEPARATOR);
        Random rand = new Random();
        int sayChar = rand.nextInt(charList.length);

        String version = SpringBootVersion.getVersion();
        String[] args = new String[]{"-f", charList[sayChar], "Spring Boot "  + version};
        String result = Cowsay.say(args);

        printStream.println(result);

    }

}

スクリーンショット 2016-11-21 2.47.20.png

使用したコード

参考

20
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
6