spring概述
spring概述
Spring的功能模块被有组织地分散到约20个模块中,这些模块分布在核心容器(CoreContainer)层、数据访问/集成(DataAccess/Integration)层、Web层、面向切面的编程(AspectOriented Programming,AOP)模块、植入(Instrumentation)模块、消息传输(Messaging)和测试(Test)模块中,如图1.1所示。
spring-beans 模块:提供了 BeanFactory,是工厂模式的一个经典实现,Spring将管理对象称为 Bcan。
spring-core 模块:提供了框架的基本组成部分,包括控制反转(Inversion ofControl,loC)和依赖注入(DependencyInjection,DI)功能。
spring-context 模块:建立在spring-beans和spring-core 模块基础上,提供一个框架式的对象访问方式,是访问定义和配置的任何对象媒介。
spring-expression 模块:提供了强大的表达式语言支持运行时查询和操作对象图。这是对JSP2.1规范中规定的统一表达式语言(UnifedEL)的扩展。该语言支持设置和获取属性值属性分配、方法调用、访问数组、集合和索引器的内容、逻辑和算术运算、变量命名以及从Spring 的IoC容器中以名称检索对象;它还支持列表投影、选择以及常见的列表聚合。
1.Core Container
Spring 的 Core Container 是其他模块建立的基础,由Bcans(spring-beans)、Core(spring-core)、Context(spring-context)和Expression(spring-expression, Spring 表达式语言)等模块组成。
2.AOP和Instrumentation
Spring框架中与 AOP 和 Instrumentation相关的模块有AOP(spring-aop)模块、Aspects(spring-aspects)模块以及Instrumentation(spring-instrument)模块。
spring-aop模块:提供了一个符合AOP要求的面向切面的编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以便干净地解耦。
spring-aspects模块:提供了与Aspect]的集成功能,Aspect]是一个功能强大且成熟的AOP 框架。
spring-instrument 模块:提供了类植入(Instrumentation)支持和类加载器的实现,可以在特定的应用服务器中使用。Instrumentation 提供了一种虚拟机级别支持的AOP 实现方式,使得开发者无须对JDK做任何升级和改动,就可以实现某些AOP的功能。
3.Messaging
Spring4.0 以后新增了 Messaging(spring-messaging)模块,该模块提供了对消息传递体系结构和协议的支持。
4 Data Access/Integration
数据访问/集成层由JDBC(spring-jdbe)、ORM(spring-orm)、OXM(spring-0xm)、JMS(spring-jms)和Transactions(spring-tx)模块组成。
spring-jdbc 模块:提供了一个JDBC的抽象层,消除了烦琐的JDBC 编码和数据库厂商特有的错误代码解析。
spring-orm 模块:为流行的对象关系映射(Object-Relational Mapping)API提供集成层包括 JPA 和 Hibermate。使用 spring-orm 模块,可以将这些 O/R 映射框架与 Spring 提供的所有其他功能结合使用,例如声明式事务管理功能。
spring-oxm 模块:提供了一个支持对象/XML映射的抽象层实现,如JAXB、Castor、JiBX和 XStream。
spring-jms模块(Java Messaging Service):指Java消息传递服务,包含用于生产和使用消息的功能。自 Spring 4.1后,提供了与spring-messaging 模块的集成。
spring-tx模块(事务模块):支持用于实现特殊接口和所有POJO(普通Java对象)类的编程和声明式事务管理。
5 Web
Web 层由Web (spring-web)、WebMVC (spring-webmvc)、WebSocket (spring-websocket)和 WebFlux(spring-webflux)模块组成。
spring-web 模块:提供了基本的Web开发集成功能,例如多文件上传功能、使用Servle监听器初始化一个IoC 容器以及 Web 应用上下文。
spring-webmvc 模块:也称为Web-Servlet 模块,包含用于 Web应用程序的 SpringMVC和REST Web Services实现。 Spring MVC框架提供了领域模型代码和 Web 表单之间的清晰分离,并与SpringFramework的所有其他功能集成。本书后续章节将会详细讲解 SpringMVC框架。
spring-websocket 模块: Spring4.0 后新增的模块,它提供了 WebSocket 和 SockJS 的实现,主要是与 Web 前端的全双工通信的协议。
Wcb Flux 模块:spring-webflux是一个新的非阻塞函数式Reactive Web框架,可以用来建立异步的、非阻塞、事件驱动的服务,并且扩展性非常好。(该模块是 Spring5的新增模块。)
6 Test
Test(spring-test)模块:支持使用JUnit 或TestNG 对 Spring 组件进行单元测试和集成测试。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理