问题:在执行main方法,也就是run得时候,执行了哪些初始化动作?
根据源码可以发现,run方法其实就是new SpringApplication()
bug跟踪可以发现:
prepareContext方法主要作用是应用上下文属性得设置,将核心启动类生成一个实列对象存放在容器中beanDefinitionMap中;
第一个:初始化servlet环境
第二个:初始化classpath下得META-INf/spring.factory中已经配置好的applicationContextInitializer
第三个:初始化配置applicationListener
第四个:调用栈,判断main方法得类名
spring容器在启动得时候,会将类解析成spring内部得beanDefinition结构,并将beanDefinition存储到defaultlistableBeanFactory得map中,