Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,那springboot启动流程是什么?下面来我们就来给大家讲解一下。
1. 当我们运行SpringApplication的main方法时,调用静态方法run()首先是实例化,SpringApplication初始化的时候主要做主要做三件事:
(1)根据classpath下是否存在(ConfigurableWebApplicationContext)判断是否要启动一个web applicationContext。
(2)SpringFactoriesInstances加载classpath下所有可用的ApplicationContextInitializer
(3)SpringFactoriesInstances加载classpath下所有可用的ApplicationListener
2. SpringApplicatio实例化完成并且完成配置后调用run()方法,首先遍历初始化过程中加载的SpringApplicationRunListeners,然后调用starting(),开始监听springApplication的启动。
3.加载SpringBoot配置环境(ConfigurableEnvironment),如果是通过web容器发布,会加载StandardEnvironment。将配置环境(Environment)加入到监听器对象中(SpringApplicationRunListeners)。
4.banner属性的设置
5.ConfigurableApplicationContext(应用配置上下文)创建,根据webEnvironment是否是web环境创建默认的contextClass
,AnnotationConfigEmbeddedWebApplicationContext(通过扫描所有注解类来加载bean)和ConfigurableWebApplicationContext),最后通过BeanUtils实例化上下文对象,并返回。
6.prepareContext()方法将listeners、environment、applicationArguments、banner等重要组件与上下文对象关联。
7.refreshContext(context),bean的实例化完成IoC容器可用的最后一道工序。
8.最后springboot做一些收尾工作。自此springboot的简单流程到此结束。
springboot有哪些优点?
SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
SpringBoot所具备的特征有:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
另外,springboot框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,从而大大提升开发者开发效率!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: