特性
- 非侵入
- 控制反转
- 依赖注入
- 容器
- 组件化
- 一站式
核心概念
控制反转(IoC)、面向切面编程(Aop)
依赖注入(DI)
核心模块
开发过程中可以根据需求有选择性地使用所需要的模块。
- Core Container (核心容器:构建其他模块建立的基础,组成:Beans、Core、Context、SpEL)
Bean模块: 提供框架的基础部分,包括控制反转和依赖注入。
Core核心模块: 封装了Spring的底层部分,包括资源访问、类型转换及一些常用工具类。 - Data Access/Integration(数据访问/集成)
JDBC 模块: JDBC的样例模板
ORM 模块
OXM 模块
JMS 模块
Transaction 事务模块:支持编程和声明式事务管理。 - Web (网络)
Web 模块:提供了基本的Web开发集成特性
Servlet 模块:提供了一个Spring MVC Web框架实现。
WebSocket 模块
Webflux 模块 - AOP、Aspects、Instrumentation和Messaging
Core container之上的是Aop、Aspects等模块。
Aop 模块:提供了面向切面编程实现,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,而且动态把这些功能添加到需要的代码中, 各司其职,降低业务逻辑和通用功能的耦合。
Aspects 模块: 提供了AspectJ的集成,是一个强大功能且成熟的面向切面(AOP)框架。
Instrumentation 模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
messaging 模块:对消息传递体系结构和协议的支持。
jcl 模块:对日志框架集成的模块。 - Test 模块
Spring 支持Junit和TestNG 测试框架,而且额外提供了Spring的测试功能,比如Web框架测试,模拟Http请求的功能。
包含 Mock Objects, TestContext Framework, Spring MVC Test, WebTestClient。
Spring核心组件
Spring的核心组件有五个:
Spring IOC:控制反转(IoC)和依赖注入(DI)框架。
Spring AOP:面向切面编程(AOP)框架。
Spring DAO:数据访问对象(DAO)框架。
Spring Context:应用上下文框架。
Spring MVC:模型视图控制器(MVC)框架。
IOC容器:IoC容器是Spring的核心,它管理着整个Spring框架的组件。通过IoC容器可以将项目中的对象解耦,实现面向切面编程(AOP),它可以在不改变代码的情况下,对程序进行非常精细的控制。
AOP:AOP是Spring的另一个核心组件,它是用于实现切面编程(AOP)的基础技术。AOP可以将非核心业务逻辑从业务逻辑中分离出来,并进行封装,从而有效地减少代码的冗余,提高代码的可重用性,并有助于系统的维护和更新。
Spring MVC:Spring MVC是Spring框架的另一个核心组件,它是基于Java EE的MVC模式的Web框架,它可以将Web请求映射到控制器。
Spring工作原理
Spring工作原理是通过IOC容器来完成的,IOC容器用Java语言的反射机制来创建一个实例,然后通过DI来连接组件,使得容器中的每一个组件都可以与其他组件交互。同时,容器中的每一个组件都可以通过配置文件来设置属性,从而实现松耦合的效果。
IOC 和 AOP
IoC在spring中的实现是使用了一个容器。用来管理对象的生命周期和他们的依赖。 这个容器可以创建对象,注入依赖,销毁对象。 这样就很灵活也更强了模块性。
AoP 允许将横切关注点与业务逻辑分开。 spring使用了Aspects来实现AOP,用它来封装了横切关注的模块。Aspects可以应用于多个对象,允许重用代码,减少重复。
- Post title:Spring核心
- Post author:郭旭升
- Create time:2023-01-19 22:36:56
- Post link:https://mvpsheng.github.io/2023/01/19/Spring核心/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
Related Issues not found
Please contact @mvpsheng to initialize the comment