進入run方法。可以發現有一個printBanner方法
1、進入printBanner方法
private Banner printBanner(ConfigurableEnvironment environment) { if (this.bannerMode == Banner.Mode.OFF) { return null; } ResourceLoader resourceLoader = (this.resourceLoader != null) ? this.resourceLoader : new DefaultResourceLoader(getClassLoader()); SpringApplicationBannerPrinter bannerPrinter = new SpringApplicationBannerPrinter(resourceLoader, this.banner); if (this.bannerMode == Mode.LOG) { return bannerPrinter.print(environment, this.mainApplicationClass, logger); } return bannerPrinter.print(environment, this.mainApplicationClass, System.out); }
第一行判斷Banner的模式是否關閉,如果關閉直接返回。
2、進入bannerPrinter.print(environment, this.mainApplicationClass, System.out)
public Banner print(Environment environment, Class<?> sourceClass, PrintStream out) { Banner banner = getBanner(environment); banner.printBanner(environment, sourceClass, out); return new PrintedBanner(banner, sourceClass); }
getBanner(environment);是獲取
printBanner是打印
還是比較簡單,可以查看源碼
3、圖片打印的關鍵代碼
ImageBanner中的printBanner方法。其中readFrames是java中圖案打印方法