网站销售方案,郑州专业的建网站,seo流量的提升的软件浿,百度seo怎么收费SpringBoot启动流程
new SpringApplication() 确认web应用类型加载ApplicationContextInitializer加载ApplicationListener记录主启动类 run() 准备环境对象Environment#xff0c;用于加载系统属性等等打印Banner实例化容器Context准备容器#xff0c;为容器设置Environmen…SpringBoot启动流程
new SpringApplication() 确认web应用类型加载ApplicationContextInitializer加载ApplicationListener记录主启动类 run() 准备环境对象Environment用于加载系统属性等等打印Banner实例化容器Context准备容器为容器设置EnvironmentBeanFactoryPostProcessor并加载主类对应的BeanDefinition刷新容器创建Bean实例返回容器 总结
问题请聊一聊SpringBoot的启动流程
答案
总SpringBoot启动其本质就是加载各种配置信息然后初始化IOC容器并返回
分在启动的过程中会做这么几个事情
首先当我们在启动类执行SpringApplication.run这行代码的时候在它的方法内部其实会做两个事情 创建SpringApplication对象执行run方法。 其次在创建SpringApplication对象的时候在它的构造方法内部主要做3个事情。 确认web应用类型一般情况下是Servlet类型这种类型的应用将来会自动启动一个tomcat从spring.factories配置文件中加载默认的ApplicationContextInitializer和ApplicationListener记录当前应用的主启动类将来做包扫描使用 最后对象创建好了以后再调用该对象的run方法在run方法的内部主要做4个事情 准备Environment对象它里面会封装一些当前应用运行环境的参数比如环境变量等等实例化容器这里仅仅是创建ApplicationContext对象容器创建好之后会为容器做一些准备工作比如为容器设置EnvironmentBeanFactoryPostProcessor后置处理器并加载主类对应的BeanDefinition刷新容器就是我们常说的referesh,在这里会真正的创建Bean实例
总总结一下我刚说的其实SpringBoot启动的核心就两步创建SpringApplication对象以及run方法的调用在run方法中会真正的实例化容器并创建容器中需要的Bean实例最终返回。