概要
Spring Bootでは起動時のバナーを変更することができます。
テキストファイルや画像ファイルによる単純な置き換えから、
カスタマイズ性の高いロジックによる変更などが用意されています。
テキストファイルでバナー表示
/src/main/resourcesにbanner.txtを配置することで起動時にバナー表示されます。
テキスト内の変数として、Spring Bootのバージョンを表示する${spring-boot.version}や
アプリケーションのバージョンを表示する${application.version}などが用意されています。(*1)
また${AnsiColor.BLUE}などで文字色を変更することもできます。
*1: MANIFEST.MFより読み込まれるためEclipseなどから起動した場合表示されません。
画像から作成したバナーを表示
/src/main/resourcesにbanner.gif, banner.jpg, banner.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);
}
}
使用したコード
参考