部分 I. 核心技术

这个开发手册的第一部分描述了Spring Framework所有使用到的技术领域。

首先是Spring Framework中的控制翻转(IoC)容器。在完整的阐述了Spring Framework的IoC容器后紧跟的是对Spring的面向方面编程(AOP)技术的全面说明。 Spring Framework拥有自己的AOP框架,这个框架在概念上是十分容易理解的,而且它成功地实现了在Java企业级开发中对AOP需求的80%左右。

开发手册中还描述了Spring与AspectJ的集成方法。 (当前来说,AspectJ是Java企业级开发领域中特性最多、最成熟的AOP实现。)

最后,Spring小组提倡在软件开发中运用测试驱动开发(TDD)方法,所以在最后涵盖了Spring对集成测试的支持(包括单元测试的最佳实践)。 Spring小组发现正确使用IoC可以让单元测试和集成测试更容易进行(在类中定义setter方法和适当的构造方法让java类更容易地与测试联系起来, 而不用设置服务定位注册或类似的东西)……希望仅专注于测试的"同学"们,这一章一定会让你有所收获。

目录

3. 控制反转容器
3.1. 简介
3.2. 容器和bean的基本原理
3.2.1. 容器
3.2.2. 实例化容器
3.2.3. 多种bean
3.2.4. 使用容器
3.3. 依赖
3.3.1. 注入依赖
3.3.2. 构造器参数的解析
3.3.3. bean属性及构造器参数详解
3.3.4. 使用depends-on
3.3.5. 延迟初始化bean
3.3.6. 自动装配(autowire)协作者
3.3.7. 依赖检查
3.3.8. 方法注入
3.4. bean的作用域
3.4.1. Singleton作用域
3.4.2. Prototype作用域
3.4.3. 其他作用域
3.4.4. 自定义作用域
3.5. 定制bean特性
3.5.1. Lifecycle接口
3.5.2. 了解自己
3.6. bean定义的继承
3.7. 容器扩展点
3.7.1. 用BeanPostProcessor定制bean
3.7.2. 用BeanFactoryPostProcessor定制配置元数据
3.7.3. 使用FactoryBean定制实例化逻辑
3.8. ApplicationContext
3.8.1. 利用MessageSource实现国际化
3.8.2. 事件
3.8.3. 底层资源的访问
3.8.4. ApplicationContext在WEB应用中的实例化
3.9. 粘合代码和可怕的singleton
3.9.1. 使用Singleton-helper类
4. 资源
4.1. 简介
4.2. Resource 接口
4.3. 内置 Resource 实现
4.3.1. UrlResource
4.3.2. ClassPathResource
4.3.3. FileSystemResource
4.3.4. ServletContextResource
4.3.5. InputStreamResource
4.3.6. ByteArrayResource
4.4. ResourceLoader
4.5. ResourceLoaderAware 接口
4.6. 把Resource作为属性来配置
4.7. Application context 和Resource 路径
4.7.1. 构造application context
4.7.2. Application context构造器中资源路径的通配符
4.7.3. FileSystemResource 提示
5. 校验,数据绑定,BeanWrapper,与属性编辑器
5.1. 简介
5.2. 使用Spring的Validator接口进行校验
5.3. 从错误代码到错误信息
5.4. Bean处理和BeanWrapper
5.4.1. 设置和获取属性值以及嵌套属性
5.4.2. 内建的PropertyEditor实现
6. 使用Spring进行面向切面编程(AOP)
6.1. 简介
6.1.1. AOP概念
6.1.2. Spring AOP的功能和目标
6.1.3. Spring的AOP代理
6.2. @AspectJ支持
6.2.1. 启用@AspectJ支持
6.2.2. 声明一个切面
6.2.3. 声明一个切入点(pointcut)
6.2.4. 声明通知
6.2.5. 引入(Introductions)
6.2.6. 切面实例化模型
6.2.7. 例子
6.3. Schema-based AOP support
6.3.1. 声明一个切面
6.3.2. 声明一个切入点
6.3.3. 声明通知
6.3.4. 引入
6.3.5. 切面实例化模型
6.3.6. Advisors
6.3.7. 例子
6.4. AOP声明风格的选择
6.4.1. Spring AOP还是完全用AspectJ?
6.4.2. Spring AOP中使用@AspectJ还是XML?
6.5. 混合切面类型
6.6. 代理机制
6.7. 编程方式创建@AspectJ代理
6.8. 在Spring应用中使用AspectJ
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入
6.8.2. Spring中其他的AspectJ切面
6.8.3. 使用Spring IoC来配置AspectJ的切面
6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW)
6.9. 其它资源
7. Spring AOP APIs
7.1. 简介
7.2. Spring中的切入点API
7.2.1. 概念
7.2.2. 切入点实施
7.2.3. AspectJ切入点表达式
7.2.4. 便利的切入点实现
7.2.5. 切入点的基类
7.2.6. 自定义切入点
7.3. Spring的通知API
7.3.1. 通知的生命周期
7.3.2. Spring里的通知类型
7.4. Spring里的advisor(Advisor) API
7.5. 使用ProxyFactoryBean创建AOP代理
7.5.1. 基础
7.5.2. JavaBean属性
7.5.3. 基于JDK和CGLIB的代理
7.5.4. 对接口进行代理
7.5.5. 对类进行代理
7.5.6. 使用“全局”advisor
7.6. 简化代理定义
7.7. 使用ProxyFactory通过编程创建AOP代理
7.8. 操作被通知对象
7.9. 使用“自动代理(autoproxy)”功能
7.9.1. 自动代理bean定义
7.9.2. 使用元数据驱动的自动代理
7.10. 使用TargetSources
7.10.1. 热交换目标源
7.10.2. 池化目标源
7.10.3. 原型目标源
7.10.4. ThreadLocal目标源
7.11. 定义新的通知类型
7.12. 更多资源
8. 测试
8.1. 简介
8.2. 单元测试
8.3. 集成测试
8.3.1. Context管理和缓存
8.3.2. 测试fixture的依赖注入
8.3.3. 事务管理
8.3.4. 方便的变量
8.3.5. 示例
8.3.6. 运行集成测试
8.4. 更多资源