Spring是一个Service层的框架,可以整合许多其他框架进行工作,Spring具有简单、可测试和松耦等特点。 Spring不仅可以用于服务器端开发,也可以应用于任何Java应用的开发中。 Spring的主要技术是IOC(DI) AOP IOC(DI) - 控制反转(依赖注入) AOP - 面向切面编程
注意:
- Spring本身是基于XML配置来工作的,在使用Spring的过程中不可避免的要编写大量的XML配置
- Spring官方提供了XML文件的编写规范,通过提供XML约束文件来实现
- XML约束文件分为
DTD 后缀为.dtd
Schema 后缀为.xsd / - Schema格式的约束,来限定Spring配置文件的写法
- 开发人员可以通过阅读Spring提供的约束文件了解Spring的XML配置的写法
- 非侵入式设计
- 方便解耦,简化开发
- 支持AOP
- 支持声明式事物处理
- 方便程序测试
- 方便集成各种优秀框架
- 降低Java EE API的使用难度
Spring框架采用的是分层架构,它一系列的功能要素被分为20个模块
1.Core Container(核心容器)
Beans:提供了BeanFactory,Spring将管理对象称为Bean。
Core:提供了Spring框架的基本组成部分,包括IoC和DI功能。
Context:建立在Core和Beans模块的基础之上,它是访问定义和配置的任何对象的媒介。
SpEL:Spring3.0后新增的模块,是运行时查询和操作对象图的强大的表达式语言。
2.Data Access/Integration(数据访问/集成)
JDBC:提供了一个JDBC的抽象层,大幅度的减少了在开发过程中对数据库操作的编码。
ORM:对流行的对象关系映射API,包括JPA、JDO和Hibernate提供了集成层支持。
OXM:提供了一个支持对象/XML映射的抽象层实现,如JAXB、Castor、XMLBeans、JiBX和XStream.
JMS:指Java消息传递服务,包含使用和生产信息的特性,自4.1版本后支持与Spring-message模块的集成。
Transactions:支持对实现特殊接口以及所有POJO类的编程和声明式的事物管理。
3.Web
WebSocket:Spring4.0以后新增的模块,它提供了WebSocket和SockJS的实现,以及对STOMP的支持。
Servlet:也称Spring-webmvc模块,包含Spring模型——视图——控制器(MVC)和RESTWeb Services实现的Web程序。
Web:提供了基本的Web开发集成特性,如:多文件上传、使用Servlet监听器来初始化IoC容器以及Web应用上下文。
Portler:提供了在portler环境中使用MVC实现,类似Servlet模块的功能。
4.其他模块
AOP:提供了面向切面编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性。
Aspects:提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的面向切面编程(AOP)框架。
Instrumentation :提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
Messaging:Spring4.0以后新增的模块,它提供了对消息传递体系结构和协议的支持。
Test:提供了对单元测试和集成测试的支持。



