这个开发手册的第一部分描述了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. IoC(控制反转)容器
- 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. 使用
depends-on
- 3.3.4. 延迟初始化bean
- 3.3.5. 自动装配(autowire)协作者
- 3.3.6. 依赖检查
- 3.3.7. 方法注入
- 3.4. Bean的作用域
- 3.4.1. Singleton作用域
- 3.4.2. Prototype作用域
- 3.4.3. Singleton beans和prototype-bean的依赖
- 3.4.4. 其他作用域
- 3.4.5. 自定义作用域
- 3.5. 定制bean特性
- 3.5.1. 生命周期回调
- 3.5.2. 了解自己
- 3.6. bean定义的继承
- 3.7. 容器扩展点
- 3.7.1. 用
BeanPostProcessor
定制bean
- 3.7.2. 用
BeanFactoryPostProcessor
定制配置元数据
- 3.7.3. 使用
FactoryBean
定制实例化逻辑
- 3.8. The
ApplicationContext
- 3.8.1.
BeanFactory
还是
ApplicationContext
?
- 3.8.2. 利用
MessageSource
实现国际化
- 3.8.3. 事件
- 3.8.4. 底层资源的访问
- 3.8.5.
ApplicationContext
在WEB应用中的实例化
- 3.9. 粘合代码和可怕的singleton
- 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext
- 3.11. 基于注解(Annotation-based)的配置
- 3.11.1.
@Autowired
- 3.11.2. 基于注解的自动连接微调
- 3.11.3.
CustomAutowireConfigurer
- 3.11.4.
@Resource
- 3.11.5.
@PostConstruct
与 @PreDestroy
- 3.12. 对受管组件的Classpath扫描
- 3.12.1.
@Component
和更多典型化注解
- 3.12.2. 自动检测组件
- 3.12.3. 使用过滤器自定义扫描
- 3.12.4. 自动检测组件的命名
- 3.12.5. 为自动检测的组件提供一个作用域
- 3.12.6. 用注解提供限定符元数据
- 3.13. 注册一个
LoadTimeWeaver
- 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. AOP代理
- 6.2. @AspectJ支持
- 6.2.1. 启用@AspectJ支持
- 6.2.2. 声明一个切面
- 6.2.3. 声明一个切入点(pointcut)
- 6.2.4. 声明通知
- 6.2.5. 引入(Introduction)
- 6.2.6. 切面实例化模型
- 6.2.7. 例子
- 6.3. 基于Schema的AOP支持
- 6.3.1. 声明一个切面
- 6.3.2. 声明一个切入点
- 6.3.3. 声明通知
- 6.3.4. 引入
- 6.3.5. 切面实例化模型
- 6.3.6. Advisor
- 6.3.7. 例子
- 6.4. AOP声明风格的选择
- 6.4.1. Spring AOP还是完全用AspectJ?
- 6.4.2. Spring AOP中使用@AspectJ还是XML?
- 6.5. 混合切面类型
- 6.6. 代理机制
- 6.6.1. 理解AOP代理
- 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加载时织入(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 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. 使用“全局”通知器
- 7.6. 简化代理定义
- 7.7. 使用ProxyFactory通过编程创建AOP代理
- 7.8. 操作被通知对象
- 7.9. 使用“自动代理(autoproxy)”功能
- 7.9.1. 自动代理bean定义
- 7.9.2. 使用元数据驱动的自动代理
- 7.10. 使用TargetSource
- 7.10.1. 热交换目标源
- 7.10.2. 池化目标源
- 7.10.3. 原型目标源
- 7.10.4.
ThreadLocal
目标源
- 7.11. 定义新的
Advice
类型
- 7.12. 更多资源
- 8. 测试
- 8.1. 简介
- 8.2. 单元测试
- 8.2.1. Mock对象
- 8.2.2. 单元测试支持类
- 8.3. 集成测试
- 8.3.1. 概览
- 8.3.2. 使用哪个支持框架
- 8.3.3. 通用目标
- 8.3.4. JDBC测试支持
- 8.3.5. 常用注解
- 8.3.6. JUnit 3.8遗留支持
- 8.3.7. Spring TestContext Framework
- 8.3.8. PetClinic示例
- 8.4. 更多资源