这件事本来很早之前就想做的,但是因为懒,所以没有去做,今天就强迫自己一把吧
首先我们都知道springboot项目的程序入口在哪里,类似图中这样
我们可以crtl+鼠标左键进去这个方法里面看看,如何进入到SpringApplication这个类里面的run方法里,很明显,没有什么好看的,那么只有再点击进去看看
最终找到了启动的方法,然后我们继续往下看,可以看到这一行代码,如图所示,这就是今天的核心了
Banner printedBanner = this.printBanner(environment);
点进这个this.printBanner()方法里面看看,可以看到有个关键的类SpringApplicationBannerPrinter,用自己蹩脚的翻译能力翻译下,就是spring应用横幅打印(我笑了)
点进去看看这个SpringApplicationBannerPrinter的print是怎么样的,然后就是如图所示
然后操作总体而言就是
//看到这行代码
Banner banner = this.getBanner(environment);
//再到本地getBanner()这个方法里的,由于一开始没有给图案,所以肯定为空的
SpringApplicationBannerPrinter.Banners banners = new SpringApplicationBannerPrinter.Banners();
banners.addIfNotNull(this.getImageBanner(environment));
banners.addIfNotNull(this.getTextBanner(environment));
if (banners.hasAtLeastOneBanner()) {
return banners;
} else {
return this.fallbackBanner != null ? this.fallbackBanner : DEFAULT_BANNER;
}
那么关键就是DEFAULT_BANNER这个了
看到这里大概就知道这个图是哪里来的吧,那么现在就是修改的时候了,最简单的一个在resource文件下放个banner.txt文件,里面放图标,或者自己写个类实现banner,然后再在启动类那里springApplication.setBanner(new xxx()); // 设置xxx为自定义的实现了Banner接口的类
当然,还有其他方法,不过我目前还没有试过,等用到了再进行补充呗
TODO