Spring Framework 参考文档
版本 5.1.9.RELEASE
Spring Framework为现代基于java的企业应用程序提供了全面的编程和配置模型 — 在任何类型的部署平台上。
Spring的一个关键元素是应用程序级别的基础设施支持:Spring关注企业应用程序的“管道”,这样团队就可以专注于应用程序级别的业务逻辑,而不必与特定的部署环境有不必要的联系。
新内容、升级说明、支持的版本和其他主题,独立于发布节奏,在项目的Github Wiki上进行外部维护。
有关最低要求的信息、从早期版本升级和支持策略的指导,请查看Spring Framework的官方wiki页面。
概述
核心技术
参考文档的这一部分涵盖了Spring Framework中不可或缺的所有技术。
其中最重要的是Spring Framework的控制反转(IoC)容器,对Spring Framework的IoC容器进行彻底的处理之后,紧接着是对Spring面向切面编程(AOP)技术的全面覆盖。Spring Framework有自己的AOP框架,它在概念上很容易理解,并且成功地解决了Java企业编程中AOP需求的80%最佳点。
本文还介绍了Spring与AspectJ的集成(目前,Java企业空间中最丰富的 – 就特性而言 – 当然也是最成熟的AOP实现)。
IoC容器
本章讨论Spring的反转控制(IoC)容器。
- Spring IoC容器和bean介绍
- 容器概述
- Bean概述
- 依赖关系
- Bean作用域
- 自定义Bean的性质
- Bean定义继承
- 容器扩展点
- 基于注解的容器配置
- 类路径扫描和管理组件
- 使用JSR 330标准注解
- 基于Java的容器配置
- 环境抽象
- 注册LoadTimeWeaver
- ApplicationContext的额外功能
- BeanFactory
Resources
- Resource介绍
- Resource接口
- 内置的Resource实现
- ResourceLoader
- ResourceLoaderAware接口
- Resources作为依赖项
- 应用程序上下文和Resource路径
验证、数据绑定和类型转换
- 使用Spring的Validator接口进行验证
- 将代码解析为错误消息
- Bean操作和BeanWrapper
- Spring类型转换
- Spring字段格式
- 配置全局日期和时间格式
- Spring Validation
Spring表达式语言(SpEL)
- 计算
- Bean定义中的表达式
- 语言参考
- 示例中的类使用
Spring面向切面编程
- AOP概念
- Spring AOP的功能和目标
- AOP代理
- @AspectJ支持
- 基于模式的AOP支持
- 选择要使用哪种AOP声明样式
- 混合切面类型
- 代理机制
- @AspectJ代理的编程创建
- 在Spring应用程序中使用AspectJ
Spring AOP API
- Spring中的Pointcut API
- Spring中的Advice API
- Spring中的Advisor API
- 使用ProxyFactoryBean创建AOP代理
- 简洁的代理的定义
- 使用ProxyFactory以编程方式创建AOP代理
- 操纵Advised对象
- 使用“自动代理”功能
- 使用TargetSource实现
- 定义新的Advice类型
Null安全
- Null安全
数据缓冲区和编解码器
- DataBufferFactory
- DataBuffer
- PooledDataBuffer
- DataBufferUtils
- Codecs
- 使用DataBuffer
附录
- XML模式
- XML模式制作
测试
本章介绍Spring对集成测试的支持以及单元测试的最佳实践,Spring团队提倡测试驱动开发(TDD),Spring团队发现,正确使用控制反转(IoC)确实使单元测试和集成测试更容易(在这种情况下,在类上存在setter方法和适当的构造函数使它们更容易在测试中连接在一起,而无需设置服务定位器注册中心和类似的结构)。
测试是企业软件开发的一个组成部分,本章重点讨论IoC原理对单元测试的增值,以及Spring Framework对集成测试的支持的好处(企业中对测试的彻底处理超出了本参考手册的范围)。
单元测试
集成测试
进一步的资源
有关测试的更多信息,请参阅以下参考资料:
- JUnit:“面向编程人员的Java测试框架”,被Spring Framework用在测试套件中。
- TestNG:一个受JUnit启发的测试框架,增加了对注解、测试组、数据驱动测试、分布式测试和其他特性的支持。
数据访问
参考文档的这一部分涉及数据访问以及数据访问层和业务或服务层之间的交互。
本文详细介绍了Spring的全面事务管理支持,然后全面介绍了Spring Framework所集成的各种数据访问框架和技术。
事务管理
DAO支持
使用JDBC访问数据
对象关系映射(ORM)数据访问
使用Object-XML映射器来编组XML
附录
- XML模式
Servlet栈上的Web
本部分文档涵盖了对构建在Servlet API上并部署到Servlet容器的Servlet堆栈web应用程序的支持,各个章节包括Spring MVC、视图技术、CORS支持和WebSocket支持,有关反应堆栈web应用程序,请参阅反应堆栈上的web。
Spring Web MVC
REST客户端
测试
WebSockets
参考文档的这一部分包括对Servlet堆栈的支持、WebSocket消息传递(包括原始WebSocket交互)、通过SockJS进行WebSocket模拟以及通过STOMP作为WebSocket子协议的发布-订阅消息传递。
其他Web框架
集成
参考文档的这一部分涵盖了Spring Framework与许多Java EE(以及相关的)技术的集成。
使用Spring的远程调用和Web服务
企业JavaBeans(EJB)集成
JMS(Java消息服务)
JMX
JCA CCI
任务执行和调度
缓存抽象
从3.1版开始,Spring Framework就支持向现有Spring应用程序透明地添加缓存,与事务支持类似,缓存抽象允许一致地使用各种缓存解决方案,对代码的影响最小。
从Spring 4.1开始,在JSR-107注解和更多定制选项的支持下,缓存抽象得到了显著扩展。
- 理解缓存抽象
- 声明式基于注解的缓存
- JCache(JSR-107)注解
- 声明式基于XML的缓存
- 配置缓存存储
- 插入不同的后端缓存