一. Spring 是什么?
Spring 由 Rod johnson 开发;
是一个非常活跃的开源框架;
它帮助分离项目组件 (对象) 之间的依赖关系;
它的主要目的是简化企业开发
二. Spring 的核心概念
- IoC
- Inversion of Control
控制反转
对象创建 & 对象之间维护的控制权由程序员管理变为由 Spring 管理
- DI
- Dependency Injection
依赖注入
表示对象和对象之间的依赖关系管理
- AOP
- Aspect Oriented Programming
面向切面编程
三. Spring 的框架组成
Spring 框架的功能大约由 20 个模块组成, 这些模块按组可以分为:
Core Container(核心容器):
Beans: 负责 Bean 工厂中 Bean 的装配, 所谓 Bean 工厂即是创建对象的工厂, Bean 的装配也就是对象的创建工作;
Core: 这个模块即是负责 IoC(控制反转)最基本的实现;
Context:Spring 的 IoC 容器, 因大量调用 Spring Core 中的函数, 整合了 Spring 的大部分功能. Bean 创建好对象后, 由 Context 负责建立 Bean 与 Bean 之间的关系并维护. 所以也可以把 Context 看成是 Bean 关系的集合;
SpEl: 即 Spring Expression Language(Spring 表达式语言);
Data Access/Integration(数据访问 / 集成):
JDBC: 对 JDBC 的简单封装;
ORM: 支持数据集成框架的封装(如 Mybatis,Hibernate);
OXM: 即 Object xml Mapper, 它的作用是在 Java 对象和 xml 文档之间来回转换;
JMS: 生产者和消费者的消息功能的实现;
Transations: 事务管理, 不多 BB;
web:
WebSocket: 提供 Socket 通信, Web 端的的推送功能;
Servlet:Spring MVC 框架的实现;
Web: 包含 Web 应用开发用到 Spring 框架时所需的核心类, 包括自动载入 WebApplicationContext 特性的类, Struts 集成类, 文件上传的支持类, Filter 类和大量辅助工具类;
Portlet: 实现 Web 模块功能的聚合 (如网站首页(Port) 下面可能会有不同的子窗口(Portlet));
AOP:
面向切面;
Aspects:
同样是面向切面的一个重要的组成部分, 提供对 AspectJ 框架的整合;
Instrumentation(设备):
相当于一个检测器, 提供对 JVM 以及对 Tomcat 的检测;
Messaging(消息):
Spring 提供的对消息处理的功能;
Test(测试):
我们在做单元测试时, Spring 会帮我们初始化一些测试过程当中需要用到的资源对象;
来源: https://www.cnblogs.com/zilongmao/p/10156310.html