怎样分析springboot?

网友投稿 135 2024-01-20


SpringBoot——Servlet容器启动解析

首先贴一张很不错的图,SpringBoot启动结构图,图片出自SpringBoot启动流程解析。本文的分析基于SpringBoot5,非Spring的代码只有下面这个启。提供大量优秀的Web框架方便开发等等。

首先在tomcatstarter中 会有整体对ServletContextInitializer的onStartup方法的调用。

spring boot启动流程分为两部分 一部分是准备阶段,一部分是运行阶段 准备阶段主要有这么几步:配置bean的源,就是bean的来源,就是注解了SpringBootApplication的那个类。

现在springboot的框架跟spring不同之处

1、Spring框架就像一个家族有众多衍生产品例如boot、security、jpa等等但他们的基础都是Spring的ioc和aopioc提供了依赖注入的容器aop解决了面向横切面的编程然后在此两者的基础上实现了其他延伸产品的高级功能。

2、Spring Boot提供极其快速和简化的操作,让 Spring 开发者快速上手。Spring Boot提供了 Spring 执行的预设配置。

3、区别如下:Spring 是一个“引擎”Spring MVC 是基于 Spring 的一个 MVC 框架 Spring Boot 是基于 Spring4 的条件注册的一套快速开发整合包 Spring 最初利用“工厂模式”( DI )和“代理模式”( AOP )解耦应用组件。

4、SpringBoot的介绍 Spring Boot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的复杂例行配置。 它的目标和Spring的目标是一致的,为更快,更高效的开发生态系统铺平了道路。

5、随着Spring框架的发展,Spring逐渐变得臃肿,不便捷。这导致基于Spring来开发,成本变高昂。于是乎,Spring框架的开发团队Pivotal推出了一整套简化Spring框架的开发方式,称之为SpringBoot。

SpringBoot启动原理分析

1、初始化initialize方法执行完之后,会调用run方法,开始启动SpringBoot。首先遍历执行所有通过SpringFactoriesLoader,在当前classpath下的META-INF/spring.factories中查找所有可用的SpringApplicationRunListeners并实例化。

2、springBoot的启动可以分为两个部分,第一部分:SpringApplication的实例化;第二部分:调用该实例运行run方法(springboot初始化)。

3、配置 spring.factories ,通过该配置,才能让springboot来自动加载我们的Configuration类。具体原理我们稍后深入了解。具体的,是在模块的 resources/META-INF 目录下,新建 spring.factories 文件。

4、SpringBoot的启动主要是通过实例化SpringApplication来启动的。

5、JQuery等;在浏览器的数据传输格式上采用Json,非xml,同时提供RESTfulAPI;SpringMVC框架用于数据到达服务器后处理请求;到数据访问层主要有Hibernate、MyBatis、JPA等持久层框架;数据库常用MySQL;开发工具推荐IntelliJIDEA。

6、原来AutomaticJobRegistrar 是个Smartlifecycle, 从Smartlifecycle的细节可以从 Springboot Smartlifecycle 来得知。它就是在所有bean都初始化结束后开始进行的一个阶段。

SpringBoot启动分析

1、初始化initialize方法执行完之后,会调用run方法,开始启动SpringBoot。首先遍历执行所有通过SpringFactoriesLoader,在当前classpath下的META-INF/spring.factories中查找所有可用的SpringApplicationRunListeners并实例化。

2、SpringBoot的启动主要是通过实例化SpringApplication来启动的。

3、启动:每个SpringBoot程序都有一个主入口,也就是main方法,main里面调用SpringApplication.run()启动整个spring-boot程序,该方法所在类需要使用@SpringBootApplication注解。

4、SpringBootx只区分web环境和非web环境,而在x版本中引入了Reactive环境,即响应式环境.那么现在SpringBoot支持三种环境: Servlet的web环境、Reactive的web环境以及非web环境。

SpringBoot核心原理:自动配置、事件驱动、Condition

springboot自动配置原理是基于条件判断来配置Bean。pring Boot的自动配置原理是基于Spring框架的条件化配置(Conditional Configuration)机制实现的。

Spring Boot 的自动装配原理主要依赖于 Spring 框架提供的 @Configuration、@ComponentScan 和 @Conditional 等注解,配合 Spring Boot 提供的 @EnableAutoConfiguration 和 spring.factories 配置文件,来实现自动装配的功能。

Spring支持Java配置和XML配置,他们为应用程序开启了特定的特性和功能,SpringBoot实现了自动配置,可以减少配置负担。

第一步:启动一个新的Spring Boot项目 利用启动.spring.io创建一个“网络”项目。在“依赖项”对话框中搜索并添加“web”依赖项,如屏幕截图所示。点击“生成”按钮,下载zip,然后将其解压缩到计算机上的文件夹中。

创建一个SpringApplication对象时,会调用它自己的initialize方法 执行核心run方法 初始化initialize方法执行完之后,会调用run方法,开始启动SpringBoot。

方法/步骤 SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration。请点击输入图片描述 EnableAutoConfiguration的作用是利用AutoConfigurationImportSelector给容器中导入一些组件。

SpringBoot项目结构及功能

目录结构如下:直接运行DemoApplication.java就可以运行项目了。你也可以使用官方模板快速开始Spring Boot项目 接下来我们分析一下pom.xml中的依赖。Spring Boot中还有一个很重要的文件:application.properties/yml/yaml文件。

SpringBoot支持创建jar包和war包。创建的jar包是内嵌tomcat,可以通过java -jar xxx.jar命令启动。

提供生产就绪功能,例如指标、健康检查和外部化配置 完全无需代码生成,无需XML配置 Spring快速入门指南 第一步:启动一个新的Spring Boot项目 利用启动.spring.io创建一个“网络”项目。

SpringBoot框架内嵌了Tomcat、Jetty和Undertow服务器,而且可以自动将项目打包,并在项目运行时部署到服务器中。提供生产就绪功能:SpringBoot提供了一些用于生产环境运行时的特性,例如指标、监控检查和外部化配置。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot接口权限(spring boot 接口权限认证)
下一篇:手机安卓版运行模拟器(手机运行模拟器伤害手机吗)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~