写点什么

spring,springboot,底层原理解析

用户头像
java小李
关注
发布于: 14 小时前
spring,springboot,底层原理解析

 一、概念


1、Spring

Spring 是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。可以接管 web 层,业务层,dao 层,持久层的组件,并且可以配置各种 bean,和维护 bean 与 bean 之间的关系。其核心就是控制反转(IOC),和面向切面(AOP) ,简单来说,Spring 是一个分层的 JavaSE/EE full-stack(一站式) 轻量级开源框架。

2、SpringMVC

Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

3、SpringBoot

Springboot 是一个微服务框架,延续了 spring 框架的核心思想 IOC 和 AOP,简化了应用的开发和部署。Spring Boot 是为了简化 Spring 应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于 Spring 应用的开发,而无需过多关注 XML 的配置。

二、原理和结构

1、Spring 的原理和组成

Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现,Spring 为简化我们的开发工作,封装了一系列的开箱即用的组件功能模块,包括:Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test 等。如下图:



简化的理解图:



2、SpringMVC 的原理和组成

从上图中可以看出:Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。专门用来开发 SpringWeb 项目的一种 MVC 模式的技术框架实现。其原理如下:




MVC:Model(模型)、VIew(视图)、Controller(控制器);我们从开始接触并学习 javaWeb 开发就知道 MVC 这一种架构,如早起的的 Sturts1、Sturts2 等。

3、SpringBoot 的原理和特性

spring boot 基本上是 spring 的拓展,它消除了设置 spring 应用程序所需的 XML 配置为更快,更高效的开发生态系统铺平了道路。

sping boot 中的一些特点:

1、Spring Boot 提供极其快速和简化的操作,让 Spring 开发者快速上手。

2、Spring Boot 提供了 Spring 运行的默认配置。

3、Spring Boot 为通用 Spring 项目提供了很多非功能性特性,例如:嵌入式 Serve、Security、统计、健康检查、外部配置等等。

组成和结构如下图:



从图中可以看出 SpringBoot 是包含了 Spring 的核心(IOC)和(AOP);以及封装了一些扩展,如 Stater:


三、区别与总结

1.简单理解为:Spring 包含了 SpringMVC,而 SpringBoot 又包含了 Spring 或者说是在 Spring 的基础上做得一个扩展。展。



好了关于 spring 的一些浅见就说到这里了,以后有时间了再继续来唠吧。

用户头像

java小李

关注

除了帅一无是处 2021.07.23 加入

拥有扎实的Core Java基础,良好的编程风格;熟悉JSP+Servlet+JavaBean模式的WEB开发;熟悉Struts,Hibernate,Spring等开源框架,了解EJB; 熟悉Tomcat,Jboss服务器等,熟悉基于Linux及Unix环境下的软件开发。

评论

发布
暂无评论
spring,springboot,底层原理解析