springboot banner打印,控制台springboot图案怎么来的

开始

SpringApplication.run(SampleController.class, args);

开始SpringApplication的初始化

public SpringApplication(Object... sources) {
    //一些初始化,监听器,容器初始化
    this.initialize(sources);
    }

执行过程的方法

public ConfigurableApplicationContext run(String... args) {
//主要执行过程
}

springboot的banner图案就在上面的方法内被执行,打印到控制台

Banner printedBanner = this.printBanner(environment);
//生成context会判断是否在this.webEnvironment ?
context = this.createApplicationContext();
//根据环境打印
this.prepareContext(context, environment, listeners, applicationArguments, printedBanner);

上面的this.printBanner(environment);会取到banner实例,包含banner的字符

private Banner printBanner(ConfigurableEnvironment environment) {
        if (this.bannerMode == Mode.OFF) {
            return null;
        } else {
            ResourceLoader resourceLoader = this.resourceLoader != null ? this.resourceLoader : new DefaultResourceLoader(this.getClassLoader());
            //SpringApplicationBannerPrinter的属性DEFAULT_BANNER就是SpringBootBanner类,SpringBootBanner的BANNER属性(字符数组)就是熟悉的控制台的banner图
            SpringApplicationBannerPrinter bannerPrinter = new SpringApplicationBannerPrinter((ResourceLoader)resourceLoader, this.banner);
            //bannerPrinter.print会调用this.getBanner方法取得bannner字符数组,打印
            return this.bannerMode == Mode.LOG ? bannerPrinter.print(environment, this.mainApplicationClass, logger) : bannerPrinter.print(environment, this.mainApplicationClass, System.out);
        }
    }

最后展示一下熟悉的springboot控制台banner图

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.9.RELEASE)
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值