🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[Spring 3.X 企业应用开发实战 -- 目录](http://blog.csdn.net/puma_dong/article/details/47917461) [TOC=1,3] 《Spring3.X企业应用开发实战》,陈雄华 林开雄著,电子工业出版社,2012.2出版。 如其名,这是一本偏向讲解如何使用Spring的书,偏向实战的书,是指导我们使用Spring这个基础框架,进行企业开发的最好入门书籍。 在2014年,有幸全部看完,断断续续的,也看了有2个月,收益良多,现在过去1年多了,很多细节已经忘记,不能准确描述出来,不过,如果有应用的场景,依然能从记忆中流出...... # 概述 ## 第1章 Spring概述 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章 快速入门 2.1 实例功能概述 > 比 Hello World 更实用的实例 > > 实例功能简介 2.2 环境准备 > 创建库表 > > 建立工程 > > 类包及 Spring 配置文件规划 2.3 持久层 > 建立领域对象 > > UserDao > > LoginLogDao > > 在 Spring 中装配 DAO 2.4 业务层 > UserService > > 在 Spring 中装配 Service > > 单元测试 2.5 展现层 > 配置 Spring MVC 框架 > > 处理登录请求 > > JSP视图页面 2.6 运行Web应用 2.7 小结 # IoC 和 AOP ## 第3章 IoC 容器概述 3.1 IoC 概述 > 通过实例理解 IoC 的概念 > > IoC 的类型 > > 通过容器完成依赖关系的注入 3.2 相关 Java 基础知识 > 简单实例 > > 类装载器 ClassLoader > > Java 反射机制 3.3 资源访问利器 > 资源抽象接口 > > 资源加载 3.4 BeanFactory 和 ApplicationContext > BeanFactory 介绍 > > ApplicationContext介绍 > > 父子容器 3.5 Bean 的生命周期 > BeanFactory 中 Bean 的生命周期 > > ApplicationContext 中 Bean 的生命周期 3.6 小结 ## 第4章 在 IoC 容器中装配 Bean 4.1 Spring 配置概述 > Spring 容器高层视图 > > 基于XML的配置 4.2 Bean 基本配置 > 装配一个Bean > > Bean的命名 4.3 依赖注入 > 属性注入 > > 构造函数注入 > > 工厂方法注入 > > 选择注入方式的考量 4.4 注入参数详解 > 字面值 > > 引用其他 Bean > > 内部 Bean > > null 值 > > 级联属性 > > 集合类型属性 > > 简化配置方式 > > 自动装配 4.5 方法注入 > lookup 方法注入 > > 方法替换 4.6 bean 之间的关系 > 继承 > > 依赖 > > 引用 4.7 整合多个配置文件 4.8 Bean 作用域 > singleton 作用域 > > prototype 作用域 > > Web 应用环境相关的 Bean 作用域 > > 作用域依赖问题 4.9 FactoryBean 4.10 基于注解的配置 > 使用注解定义 Bean > > 使用注解配置信息启动 Spring 容器 > > 自动装配 Bean > > Bean 作用范围及生命过程方法 4.11 基于 Java 类的配置 > 使用 Java 类提供 Bean 定义信息 > > 使用基于 Java 类的配置信息启动 Spring 容器 4.12 不同配置方式比较 4.13 小结 ## 第5章 Spring 容器高级主题 5.1 Spring 容器技术内幕 > 内部工作机制 > > BeanDefinition > > InstantiationStrategy > > BeanWrapper 5.2 属性编辑器 > JavaBean 的编辑器 > > Spring 默认属性编辑器 > > 自定义属性编辑器 5.3 使用外部属性文件 > 使用外部属性文件 > > 使用加密的属性文件 > > 属性文件自身的引用 5.4 引用 Bean 的属性值 5.5 国际化信息 > 基础知识 > > MessageSource > > 容器级的国际化信息资源 5.6 容器事件 > Spring 事件类结构 > > 结构 Spring 事件体系的具体实现 > > 一个实例 5.7 小结 ## 第6章 Spring AOP 基础 6.1 AOP 概述 > AOP 到底是什么 > > AOP 术语 > > AOP 的实现者 6.2 基础知识 > 带有横切逻辑的实例 > > JDK 动态代理 > > CGLib 动态代理 > > AOP 联盟 > > 代理知识小结 6.3 创建增强类 > 增强类型 > > 前置增强 > > 后置增强 > > 环绕增强 > > 异常抛出增强 > > 引介增强 6.4 创建切面 > 切点类型 > > 切面类型 > > 静态普通方法名匹配切面 > > 静态正则表达式方法匹配切面 > > 动态切面 > > 流程切面 > > 复合切点切面 > > 引介切面 6.5 自动创建代理 > 实现类介绍 > > BeanNameAutoProxyCreator > > DefaultAdvisorAutoProxyCreator 6.6 小结 ## 第7章 基于 @AspectJ 和 Schema 的 AOP 7.1 Spring 对 AOP 的支持 7.2 JDK 5.0 注解知识快速进阶 > 了解注解 > > 一个简单的注解类 > > 使用注解 > > 访问注解 7.3 着手使用 @AspectJ > 使用前的准备 > > 一个简单的例子 > > 如何通过配置使用 @AspectJ 切面 7.4 @AspectJ 语法基础 > 切点表达式函数 > > 在函数入参中使用通配符 > > 逻辑运算符 > > 不同增强类型 > > 引介增强用法 7.5 切点函数详解 > @annotation() > > execution() > > args()和@args() > > within() > > @within()和@target() > > target()的this() 7.6 @AspectJ 进阶 > 切点复合运算 > > 命名切点 > > 增强织入的顺序 > > 访问连接点信息 > > 绑定连接点方法入参 > > 绑定代理对象 > > 绑定类注解对象 > > 绑定返回值 > > 绑定抛出的异常 7.7 基于Schema 配置切面 > 一个简单切面的配置 > > 配置命名切点 > > 各种增强类型的配置 > > 绑定连接点信息 > > Advisor配置 7.8 混合切面类型 > 混合使用各种切面类型 > >  各种切面类型总结 7.9 JVM Class 文件字节码转换基础知识 > java.lang.instrument 包的工作原理 > > 如何向 JVM 中注册转换器 > > 使用 JVM 启动参数注册转换器的问题 7.10 使用 LTW 织入切面 > Spring 的 LoadTimeWeaver > > 使用 LTW 织入一个切面 > > 在 Tomcat 下的配置 > > 在其他Web应用服务器下的配置 7.11 小结 # 数据访问 ## 第8章 Spring 对 DAO 的支持 8.1 Spring的DAO理念 8.2 统一的异常体系 > Spring的DAO异常体系 > > JDBC的异常转换器 > > 其他持久技术的异常转换器 8.3 统一数据访问模板 > 使用模板和回调机制 > Spring 为不同持久化技术所提供的模板类 8.4 数据源 > 配置一个数据源 > 获取 JNDI 数据源 > Spring 的数据源实现类 8.5 小结 ## 第9章 Spring 的事务管理 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章 Spring 的事务管理难点剖析 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章 使用 Spring JDBC 访问数据库 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章 整合其他ORM框架 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 小结 # 业务层及Web层技术 ## 第13章 任务调度和异步执行器 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章 使用 OXM 进行对象 XML 映射 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章 Spring MVC 15.1 Spring MVC 概述 > 体系结构 > > 配置 DispatcherServlet > > 一个简单的实例 15.2 注解驱动的控制器 > 使用 @RequestMapping 映射请求 > > 请求处理方法签名概述 > > 处理方法签名详细说明 > > 使用 HttpMessageConverter > > 处理模型数据 15.3 处理方法的数据绑定 > 数据绑定流程剖析 > > 数据转换 > > 数据格式化 > > 数据校验 15.4 视图和视图解析器 > 认识视图 > > 认识视图解析器 > > JSP 和 JSTL > > 模板视图 > > Excel > > PDF > > 输出 XML > > 输出 JSON > > 使用 XmlViewResolver > > 使用 ResourceBundleViewResolver > > 混合使用多种视图技术 15.5 本地化解析 > 本地化概述 > > 使用 CookieLocaleResolver > > 使用 SessionLocaleResolver > > 使用 LocaleChangeInterceptor 15.6 文件上传 > 配置 MultipartResolver > > 编写控制器和文件上传表单页面 15.7 杂项 > 静态资源处理 > > 装配拦截器 > > 异常处理 15.8 小结 # 测试及实战 ## 第16章 实战型单元测试 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章 实战案例开发 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 小结