spring启动源码简单理解

1  SpringApplication实例化   

    1.1  .run(args);

    1.2   stopWatch.start(); 监控Java代码运行时间和性能分析

    1.3   configureHeadlessProperty();   设置jdk系统属性java.awt.headless启动

    1.4   SpringApplicationRunListeners listeners = getRunListeners(args);   获取启动时监听器

                        getRunListeners(args) 从SpringFactoriesLoader的cache中取SpringApplicationRunListener类型的类(全限定                                  名),然后实例化后返回。

                         ( getSpringFactoriesInstances在第一次被调用时会将类路径下所有的META-INF/spring.factories的文件中的属性                             进行加载并缓存到SpringFactoriesLoader的缓存cache中)

     1.5  listeners.starting();  遍历事件,排除非匹配事件,发布匹配事件监听器。

     1.6   ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);   main方法args传参

              prepareEnvironment(listeners, applicationArguments)   准备运行时的环境

     1.7 configureIgnoreBeanInfo(environment);   配置忽视的bean的信息

     1.8 printBanner(environment)  打印旗帜,也就是程序启动日志开头的图案

     1.9 createApplicationContext()   .AnnotationConfigServletWebServerApplicationContext   创建应用上下文,对其部分属性:                                                      reader、scanner、beanFactory进行了实例化;reader中实例化了属性conditionEvaluator;                                                         scanner中添加了两个AnnotationTypeFilter:一个针对@Component,一个针对                                                                                 @ManagedBean;beanFactory中注册了8个注解配置处理器。

      1.10   prepareContext(context, environment, listeners, applicationArguments, printedBanner); 设置上下文的各个属性

       1.11  refreshContext(context);  调用 AbstractApplicationContext  refresh()

                 1.11.1   prepareRefresh();

                 1.11.2   ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();

                                 创建一个ConfigurableListableBeanFactory 类型的bean工厂并装载bean的定义

       

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunForYou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值