http://ajava.org网站整理
http://ask.ajava.org有奖问答论坛
书名:Spring Framework 开发参考手册
格式:CHM
作者:详见文档
Spring为编写企业应用程序提供了轻量的解决方案,同时仍然支持使用声明式事务、 用RMI或web service远程调用、以及使用多种方式来将数据持久化到数据库。Spring提供了全功能的 MVC framework, 以及透明集成AOP到你的软件中的能力。
Spring可能是你的企业应用程序所需要的一站式解决方案, 但Spring仍然是模块化的,允许你只使用你所需的哪些部分,而无需附加上其他部分。 你可以使用 IoC容器,在其上使用Struts,但是你也可以选择使用 Hibernate 整合代码或者 JDBC 抽象层。 我们将Spring设计为非侵入式的(并且以后也是如此),这意味着应用基本上不需要依赖框架本身 (或者肯定是最小的,取决于所使用的部分)。
目录
前言
1. 简介
1.1. 概览
1.1.1. 使用场景
2. Spring 2.0和 2.5的新特性
2.1. 简介
2.2. 控制反转(IoC)容器
2.2.1. 新的bean作用域
2.2.2. 更简单的XML配置
2.2.3. 可扩展的XML编写
2.2.4. Annotation(注解)驱动配置
2.2.5. 在classpath中自动搜索组件
2.3. 面向切面编程(AOP)
2.3.1. 更加简单的AOP XML配置
2.3.2. 对@AspectJ 切面的支持
2.3.3. 对bean命名pointcut( bean name pointcut element)的支持
2.3.4. 对AspectJ装载时织入(AspectJ load-time weaving)的支持
2.4. 中间层
2.4.1. 在XML里更为简单的声明性事务配置
2.4.2. 对Websphere 事务管理的完整支持
2.4.3. JPA
2.4.4. 异步的JMS
2.4.5. JDBC
2.5. Web层
2.5.1. Spring MVC合理的默认值
2.5.2. Portlet 框架
2.5.3. 基于Annotation的控制器
2.5.4. Spring MVC的表单标签库
2.5.5. 对Tiles 2 支持
2.5.6. 对JSF 1.2支持
2.5.7. JAX-WS支持
2.6. 其他
2.6.1. 动态语言支持
2.6.2. 增强的测试支持
2.6.3. JMX 支持
2.6.4. 将Spring 应用程序上下文部署为JCA adapter
2.6.5. 计划任务
2.6.6. 对Java 5 (Tiger) 支持
2.7. 移植到Spring 2.5
2.7.1. 改变
2.8. 更新的样例应用
2.9. 改进的文档
I. 核心技术
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. 更多资源
II. 中间层数据访问
9. 事务管理
9.1. 简介
9.2. 动机
9.3. 关键抽象
9.4. 使用资源同步的事务
9.4.1. 高层次方案
9.4.2. 低层次方案
9.4.3. TransactionAwareDataSourceProxy
9.5. 声明式事务管理
9.5.1. 理解Spring的声明式事务管理实现
9.5.2. 第一个例子
9.5.3. 回滚
9.5.4. 为不同的bean配置不同的事务语义
9.5.5. <tx:advice/> 有关的设置
9.5.6. 使用 @Transactional
9.5.7. 事务传播
9.5.8. 通知事务操作
9.5.9. 结合AspectJ使用 @Transactional
9.6. 编程式事务管理
9.6.1. 使用TransactionTemplate
9.6.2. 使用PlatformTransactionManager
9.7. 选择编程式事务管理还是声明式事务管理
9.8. 与特定应用服务器集成
9.8.1. IBM WebSphere
9.8.2. BEA WebLogic
9.8.3. Oracle OC4J
9.9. 常见问题的解决方法
9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器
9.10. 更多的资源
10. DAO支持
10.1. 简介
10.2. 一致的异常层次
10.3. 一致的DAO支持抽象类
11. 使用JDBC进行数据访问
11.1. 简介
11.1.1. 选择一种工作模式
11.1.2. Spring JDBC包结构
11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理
11.2.1. JdbcTemplate类
11.2.2. NamedParameterJdbcTemplate类
11.2.3. SimpleJdbcTemplate类
11.2.4. DataSource接口
11.2.5. SQLExceptionTranslator接口
11.2.6. 执行SQL语句
11.2.7. 执行查询
11.2.8. 更新数据库
11.2.9. 获取自动生成的主键
11.3. 控制数据库连接
11.3.1. DataSourceUtils类
11.3.2. SmartDataSource接口
11.3.3. AbstractDataSource类
11.3.4. SingleConnectionDataSource类
11.3.5. DriverManagerDataSource类
11.3.6. TransactionAwareDataSourceProxy类
11.3.7. DataSourceTransactionManager类
11.3.8. NativeJdbcExtractor
11.4. JDBC批量操作
11.4.1. 使用JdbcTemplate进行批量操作
11.4.2. 使用SimpleJdbcTemplate进行批量操作
11.5. 通过使用SimpleJdbc类简化JDBC操作
11.5.1. 使用SimpleJdbcInsert插入数据
11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键
11.5.3. 指定SimpleJdbcInsert所使用的字段
11.5.4. 使用SqlParameterSource提供参数值
11.5.5. 使用SimpleJdbcCall调用存储过程
11.5.6. 声明SimpleJdbcCall使用的参数
11.5.7. 如何定义SqlParameters
11.5.8. 使用SimpleJdbcCall调用内置函数