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