《Spring3.X企业应用开发实战》,陈雄华 林开雄著,电子工业出版社,2012.2出版。
如其名,这是一本偏向讲解如何使用Spring的书,偏向实战的书,是指导我们使用Spring这个基础框架,进行企业开发的最好入门书籍。
在2014年,有幸全部看完,断断续续的,也看了有2个月,收益良多,现在过去1年多了,很多细节已经忘记,不能准确描述出来,不过,如果有应用的场景,依然能从记忆中流出......
1.1 认识 Spring
1.2 关于 SpringSource
1.3 Spring 带给我们什么
1.4 Spring 体系结构
1.5 Spring 3.0的新功能
核心API更新到 Java 5.0
Spring 表达式语言
可通过 Java 类提供IoC配置信息
通用类型转换系统和属性格式化系统
数据访问层新增OXM功能
Web层的增强
其他
1.6 Spring 对 Java 版本的要求
1.7 如何获取 Spring
1.8 小结
2.1 实例功能概述
2.2 环境准备比 Hello World 更实用的实例
实例功能简介
2.3 持久层创建库表
建立工程
类包及 Spring 配置文件规划
2.4 业务层建立领域对象
UserDao
LoginLogDao
在 Spring 中装配 DAO
2.5 展现层UserService
在 Spring 中装配 Service
单元测试
2.6 运行Web应用配置 Spring MVC 框架
处理登录请求
JSP视图页面
2.7 小结
3.1 IoC 概述
3.2 相关 Java 基础知识通过实例理解 IoC 的概念
IoC 的类型
通过容器完成依赖关系的注入
3.3 资源访问利器简单实例
类装载器 ClassLoader
Java 反射机制
3.4 BeanFactory 和 ApplicationContext资源抽象接口
资源加载
3.5 Bean 的生命周期BeanFactory 介绍
ApplicationContext介绍
父子容器
3.6 小结BeanFactory 中 Bean 的生命周期
ApplicationContext 中 Bean 的生命周期
4.1 Spring 配置概述
4.2 Bean 基本配置Spring 容器高层视图
基于XML的配置
4.3 依赖注入装配一个Bean
Bean的命名
4.4 注入参数详解属性注入
构造函数注入
工厂方法注入
选择注入方式的考量
4.5 方法注入字面值
引用其他 Bean
内部 Bean
null 值
级联属性
集合类型属性
简化配置方式
自动装配
4.6 bean 之间的关系lookup 方法注入
方法替换
4.7 整合多个配置文件继承
依赖
引用
4.8 Bean 作用域
4.9 FactoryBeansingleton 作用域
prototype 作用域
Web 应用环境相关的 Bean 作用域
作用域依赖问题
4.10 基于注解的配置
4.11 基于 Java 类的配置使用注解定义 Bean
使用注解配置信息启动 Spring 容器
自动装配 Bean
Bean 作用范围及生命过程方法
4.12 不同配置方式比较使用 Java 类提供 Bean 定义信息
使用基于 Java 类的配置信息启动 Spring 容器
4.13 小结
5.1 Spring 容器技术内幕
5.2 属性编辑器内部工作机制
BeanDefinition
InstantiationStrategy
BeanWrapper
5.3 使用外部属性文件JavaBean 的编辑器
Spring 默认属性编辑器
自定义属性编辑器
5.4 引用 Bean 的属性值使用外部属性文件
使用加密的属性文件
属性文件自身的引用
5.5 国际化信息
5.6 容器事件基础知识
MessageSource
容器级的国际化信息资源
5.7 小结Spring 事件类结构
结构 Spring 事件体系的具体实现
一个实例
6.1 AOP 概述
6.2 基础知识AOP 到底是什么
AOP 术语
AOP 的实现者
6.3 创建增强类带有横切逻辑的实例
JDK 动态代理
CGLib 动态代理
AOP 联盟
代理知识小结
6.4 创建切面增强类型
前置增强
后置增强
环绕增强
异常抛出增强
引介增强
6.5 自动创建代理切点类型
切面类型
静态普通方法名匹配切面
静态正则表达式方法匹配切面
动态切面
流程切面
复合切点切面
引介切面
6.6 小结实现类介绍
BeanNameAutoProxyCreator
DefaultAdvisorAutoProxyCreator
7.1 Spring 对 AOP 的支持
7.2 JDK 5.0 注解知识快速进阶
7.3 着手使用 @AspectJ了解注解
一个简单的注解类
使用注解
访问注解
7.4 @AspectJ 语法基础使用前的准备
一个简单的例子
如何通过配置使用 @AspectJ 切面
7.5 切点函数详解切点表达式函数
在函数入参中使用通配符
逻辑运算符
不同增强类型
引介增强用法
7.6 @AspectJ 进阶@annotation()
execution()
args()和@args()
within()
@within()和@target()
target()的this()
7.7 基于Schema 配置切面切点复合运算
命名切点
增强织入的顺序
访问连接点信息
绑定连接点方法入参
绑定代理对象
绑定类注解对象
绑定返回值
绑定抛出的异常
7.8 混合切面类型一个简单切面的配置
配置命名切点
各种增强类型的配置
绑定连接点信息
Advisor配置
7.9 JVM Class 文件字节码转换基础知识混合使用各种切面类型
各种切面类型总结
7.10 使用 LTW 织入切面java.lang.instrument 包的工作原理
如何向 JVM 中注册转换器
使用 JVM 启动参数注册转换器的问题
Spring 的 LoadTimeWeaver
使用 LTW 织入一个切面
在 Tomcat 下的配置
在其他Web应用服务器下的配置
7.11 小结
8.1 Spring的DAO理念
8.2 统一的异常体系
8.3 统一数据访问模板Spring的DAO异常体系
JDBC的异常转换器
其他持久技术的异常转换器
使用模板和回调机制
Spring 为不同持久化技术所提供的模板类
8.4 数据源
配置一个数据源
获取 JNDI 数据源
Spring 的数据源实现类
8.5 小结
9.1 数据库事务基础知识
何为数据库事务
数据并发的问题
数据库锁机制
事务隔离级别
JDBC对事务支持
9.2 ThreadLocal 基础知识
ThreadLocal 是什么
ThreadLocal 的接口方法
一个ThreadLocal实例
与Thread同步机制的比较
Spring 使用 ThreadLocal解决线程安全问题
9.3 Spring 对事务管理的支持
事务管理关键抽象
Spring 的事务管理器实现类
事务同步管理器
事务传播行为
9.4 编程式的事务管理
9.5 使用 XML 配置声明式事务
一个将被实施事务增强的服务接口
使用原始的TransactionProxyFactoryBean
基于 tx/aop 命名空间的配置
9.6 使用注解配置声明式事务
使用 @Transaction 注解
通过 AspectJ LTW 引入事务切面
9.7 集成特定的应用服务器
BEA WebLogic
9.8 小结
10.1 DAO 和事务管理的牵绊
JDBC 访问数据库
Hibernate 访问数据库
10.2 应用分层的迷惑
10.3 事务方法嵌套调用的迷茫
Spring 事务传播机制回顾
相互嵌套的服务方法
10.4 多线程的困惑
Spring 通过单实例化Bean简化多线程问题
启动独立线程调用事务方法
10.5 联合军种作战的混乱
Spring 事务管理器的应对
Hibernate+Spring JDBC 混合框架的事务管理
10.6 特殊方法成漏网之鱼
哪些方法不能实施 Spring AOP事务
事务增强遗漏实例
10.7 数据连接泄露
底层连接资源的访问问题
Spring JDBC 数据连接泄露
通过 DataSourceUtils 获取数据连接
JdbcTemplate如何做到对连接泄露的免疫
使用 TransactionAwareDataSourceProxy
其他数据访问技术的等价类
10.8 小结
11.1 使用 Spring JDBC
JDBCTemplate 小试牛刀
在 DAO 中使用 JDBCTemplate
11.2 基本的数据操作
更改数据
返回数据库的表自增主键值
批量更改数据
查询数据
查询单值数据
调用存储过程
11.3 BLOB/CLOB 类型数据的操作
如何获取本地数据连接
相关的操作接口
插入 Lob 类型的数据
以块数据方式读取 Lob 数据
以流数据方式读取 Lob 数据
11.4 自增键和行集
自增键的使用
如何规划主键方案
以行集返回数据
11.5 其他类型的 JDBCTemplate
NamedParameterJDBCTemplate
SimpleJDBCTemplate
11.6 以 OO 方式访问数据库
使用 MappingSqlQuery 查询数据
使用 SqlUpdate 更新数据
使用 StoredProcedure 执行存储过程
SqlFunction 类
11.7 小结
12.1 Spring 整合ORM技术
12.2 在 Spring 中 使用Hibernate
配置 SessionFactory
使用 HibernateTemplate
处理 Lob 类型数据
添加 Hibernate 事件监听器
使用原生 Hibernate API
使用注解配置
事务处理
延迟加载的问题
12.3 在 Spring 中使用 MyBatis
配置 SqlMapClient
在 Spring 配置 MyBatis
编写 MyBatis 的DAO
12.5 DAO 层设计
DAO基类的设计
查询接口方法的设计
分页查询接口设计
12.6 小结
13.1 任务调度概述
13.2 Quartz 快速进阶
Quartz 基础结构
使用 SimpleTrigger
使用 CronTrigger
使用调度信息存储
13.3 在 Spring 中使用 Quartz
创建 JobDetail
创建 Trigger
创建 Scheduler
13.4 Spring 中使用 JDK Timer
Timer 和 TimerTask
Spring 对JDK Timer 的支持
13.5 Spring 对JDK 5.0 Executor 的支持
了解 JDK 5.0 的 Executor
Spring 对 Executor 所提供的抽象
13.6 实际应用中的任务调度
如何产生任务
任务调度对应用程序集群的影响
任务调度云
Web 应用程序中调度器的启动和关闭问题
13.7 小结
14.1 认识 XML 解析技术
什么是 XML
XML 的处理技术
14.2 XML 处理利器:XStream
XStream 概述
快速入门
使用 XStream 别名
XStream 转换器
XStream 注解
流化对象
持久化 API
额外功能:处理 JSON
14.3 其他常见 O/X Mapping开源项目
JAXB
XMLBeans
Castor
JiBX
总结比较
14.4 与 Spring OXM 整合
Spring OXM 概述
整合 OXM 实现者
如何在 Spring 中进行配置
Spring OXM 简单实例
14.5 小结
15.1 Spring MVC 概述
体系结构
配置 DispatcherServlet
一个简单的实例
15.2 注解驱动的控制器
使用 @RequestMapping 映射请求
请求处理方法签名概述
处理方法签名详细说明
使用 HttpMessageConverter<T>
处理模型数据
15.3 处理方法的数据绑定
数据绑定流程剖析
数据转换
数据格式化
数据校验
15.4 视图和视图解析器
认识视图
认识视图解析器
JSP 和 JSTL
模板视图
Excel
输出 XML
输出 JSON
使用 XmlViewResolver
使用 ResourceBundleViewResolver
混合使用多种视图技术
15.5 本地化解析
本地化概述
使用 CookieLocaleResolver
使用 SessionLocaleResolver
使用 LocaleChangeInterceptor
15.6 文件上传
配置 MultipartResolver
编写控制器和文件上传表单页面
15.7 杂项
静态资源处理
装配拦截器
异常处理
15.8 小结
16.1 单元测试概述
为什么需要单元测试
单元测试之无解
单元测试之困境
单元测试基本概念
16.2 JUnit 4 快速进阶
JUnit 4 概述
JUnit 4 生命周期
使用 JUnit 4
16.3 模拟利器 Mockito
模拟测试概述
创建 Mock 对象
设定 Mock 对象的期望行为及返回值
验证交互行为
16.4 测试整合之王 Unitils
Unitils 概述
集成 Spring
集成 Hibernate
集成 Dbunit
自定义扩展模块
16.5 使用 Unitils 测试 DAO 层
数据库测试的难点
扩展 Dbunit 用 Excel 准备数据
测试实战
16.6 使用 Unitils 测试 Service 层
16.7 测试 Web 层
对 LoginController 进行单元测试
使用 Spring Servlet API 模拟对象
使用 Spring RestTemplate 测试
使用 Selenium 测试
16.8 小结
17.1 论坛案例概述
论坛整体功能结构
论坛用例概述
主要功能流程概述
17.2 系统设计
技术框架选择
Web 目录结构及类包结构规划
单元测试类包结构规划
系统的结构图
PO 的类设计
持久层设计
服务层设计
Web层设计
数据库设计
17.3 开发前的准备
17.4 持久层开发
PO 类
DAO 基类
通过扩展基类所定义 DAO 类
DAO Bean 的装配
使用 Hibernate 二级缓存
17.5 对持久层进行测试
配置 Unitils 测试环境
准备测试数据库及测试数据
编写 DAO 测试基类
编写 BoardDao 测试用例
17.6 服务层开发
UserService 的开发
ForumService 的开发
服务类 Bean 的装配
17.7 对服务层进行测试
编写 Service 测试基类
编写 ForumService 测试用例
17.8 Web 层开发
BaseController 的基类
用户登录和注销
用户注册
论坛管理
论坛普通功能
分页展示论坛版块的主题帖子
web.xml 配置
Spring MVC配置
17.9 对 Web 层进行测试
编写 Web 测试基类
编写 ForumManageController 测试用例
17.10 部署和运行应用
17.11 小结