通过源码了解springboot加载application.properties过程

springboot有一个配置文件application.properties,我只知道有这么一个配置文件,但是springboot启动的时候,是在哪里加载该文件的,又如何找到该文件的?从源码去查看

在main方法里执行该方法SpringApplication.run(Test.class, args);查看SpringApplication类的源码,进入run方法

public static ConfigurableApplicationContext run(Object source, String... args) {
        return run(new Object[] { source }, args);
    }

再进入 run(new Object[] { source }, args);方法

public static ConfigurableApplicationContext run(Object[] sources, String[] args) {
        return new SpringApplication(sources).run(args);
    }

到这一步,可以看到创建一个新的SpringApplication,new SpringApplication(sources),并执行run()方法,先到构造方法去看一下,这类做了什么初始化的事

public SpringApplication(Object... sources) {
        initialize(sources);
    }

里面有一个initialize(sources);方法,再进去

@SuppressWarnings({ "unchecked", "rawtypes" })
    private void initialize(Object[] sources) {
        if (sources != null && sources.length > 0) {
            this.sources.addAll(Arrays.asList(sources));
        }
        this.webEnvironment = deduceWebEnvironment();
        setInitializers((Collection) getSpringFactoriesInstances(
                ApplicationContextInitializer.class));
        setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));
        this.mainApplicationClass = deduceMainApplicationClass();
    }

在上面的代码中, this.webEnvironment = deduceWebEnvironment();该方法主要是筛选sevlet和ConfigurableWebApplicationContext,如何有这两个就返回false,否则返回true,具体有什么作用,我也不知道,但跟这次讨论的问题无关,暂时放一边,setInitalizers()方法,看一下源码

public

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值