Spring Framework 简单地说就提供一个基础框架,是可以让我们简单快速地开发应用。
何为简单:仅使用非侵入式的POJO,仅考虑业务逻辑。
https://blog.csdn.net/china_0221/article/details/29177111
1.主要特征
-
核心技术:依赖注入、事件、资源、i18n、验证、数据绑定、类型转换、SpEL、AOP。
-
测试:模拟对象、TestContext 框架、Spring MVC 测试、WebTestClient。
-
数据访问:事务、DAO 支持、JDBC、ORM、编组 XML。
-
Spring MVC和 Spring WebFlux Web 框架。
-
集成:远程处理、JMS、JCA、JMX、电子邮件、任务、调度、缓存。
-
语言:Kotlin、Groovy、动态语言。
以上就是 Spring Framework 做的,我们在开发中不用考虑。
标红的是本系列文章需要探讨的。
2.体系结构
这块在官网上已经找不到了,大家看一下就好。Web 这块目前主要包括 Web Servlet 和 Web Reactive.
2.1.核心容器
核心容器由核心,Bean,上下文和表达式语言模块组成,它们的细节如下:
-
核心模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。
-
Bean 模块提供 BeanFactory,它是一个工厂模式的复杂实现。
-
上下文模块建立在由核心和 Bean 模块提供的坚实基础上,它是访问定义和配置的任何对象的媒介。ApplicationContext 接口是上下文模块的重点。
- 表达式语言模块在运行时提供了查询和操作一个对象图的强大的表达式语言。
2.2.数据访问/集成
数据访问/集成层包括 JDBC,ORM,OXM,JMS 和事务处理模块,它们的细节如下:
-
JDBC 模块提供了删除冗余的 JDBC 相关编码的 JDBC 抽象层。
-
ORM 模块为流行的对象关系映射 API,包括 JPA,JDO,Hibernate 和 iBatis,提供了集成层。
-
OXM 模块提供了抽象层,它支持对 JAXB,Castor,XMLBeans,JiBX 和 XStream 的对象/XML 映射实现。
-
Java 消息服务 JMS 模块包含生产和消费的信息的功能。
- 事务模块为实现特殊接口的类及所有的 POJO 支持编程式和声明式事务管理。
2.3.Web
Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成,它们的细节如下:
-
Web 模块提供了基本的面向 web 的集成功能,例如多个文件上传的功能和使用 servlet 监听器和面向 web 应用程序的上下文来初始化 IoC 容器。
-
Web-MVC 模块包含 Spring 的模型-视图-控制器(MVC),实现了 web 应用程序。
-
Web-Socket 模块为 WebSocket-based 提供了支持,而且在 web 应用程序中提供了客户端和服务器端之间通信的两种方式。
- Web-Portlet 模块提供了在 portlet 环境中实现 MVC,并且反映了 Web-Servlet 模块的功能。
2.4.其他
还有其他一些重要的模块,像 AOP,Aspects,Instrumentation,Web 和测试模块,它们的细节如下:
-
AOP 模块提供了面向切面的编程实现,允许你定义方法拦截器和切入点对代码进行干净地解耦,它实现了应该分离的功能。
-
Aspects 模块提供了与 AspectJ 的集成,这是一个功能强大且成熟的面向切面编程(AOP)框架。
-
Instrumentation 模块在一定的应用服务器中提供了类 instrumentation 的支持和类加载器的实现。
-
Messaging 模块为 STOMP 提供了支持作为在应用程序中 WebSocket 子协议的使用。它也支持一个注解编程模型,它是为了选路和处理来自 WebSocket 客户端的 STOMP 信息。
- 测试模块支持对具有 JUnit 或 TestNG 框架的 Spring 组件的测试。
三、结语
看完上面的内容,只需要记住两个名词:IOC 和 AOP。
我们在后面的文章中细品这块。