springboot启动流程是什么?springboot有哪些优点?

阳光 2022-03-31 16:24:52 java常见问答 8572

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工具网。

推荐阅读:

mybatis中$和井号区别是什么?mybatis有什么特征?

json格式如何导入数据库?json怎样解析?

java线程怎么启动?java线程启动的方式