work hard work smart

专注于Java后端开发。 不断总结,举一反三。
随笔 - 1158, 文章 - 0, 评论 - 153, 阅读 - 187万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

SpringBoot banner内容获取和打印原理

Posted on   work hard work smart  阅读(758)  评论(0编辑  收藏  举报

进入run方法。可以发现有一个printBanner方法

 

1、进入printBanner方法

1
2
3
4
5
6
7
8
9
10
11
12
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)

1
2
3
4
5
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中图案打印方法

 

点击右上角即可分享
微信分享提示