Spring Data实战
Mark Pollack, Oliver Gierke, Thomas Risberg, Jon Brisbin, Michael Hunger
张卫滨, 文建国 译
出版时间:2014年02月
页数:248
“你将会深刻理解现代的数据访问为何更加专门化和碎片化,NoSQL数据存储的主要分类有哪些,Spring Data如何帮助Java开发人员在新的环境下高效工作。”
——Rod Johnson
Spring框架创始人

“通过切换到Spring Batch和Spring Data,我们彻底简化并降低了与Hadoop交互所带来的复杂性,同时增加了可靠性。”
——David Gevorkyan
软件工程师,eHarmony

基于关系型数据库构建企业级Java应用时,会有多个数据访问框架供你选择。但是该如何应对大数据呢?本书以实际经验介绍了借助Spring Data如何便利地构建应用,这些应用会用到多种新的数据访问技术,如NoSQL和Hadoop。
通过多个样例项目,你将学到Spring Data所提供的一致编程模型,这种模型保留了每种NoSQL数据库专有的特性以及功能,并且能够帮助你开发Hadoop应用来应对广泛的用例场景,如数据分析、事件流处理以及工作流。你还能学到,为了编写基于RDBMS的数据访问层,Spring Data为Spring已有的JPA和JDBC添加了哪些功能。

· 学习使用Spring的模板帮助类来简化数据库的特定功能;
· 探索Spring Data的Repository抽象以及高级查询功能;
· 借助Spring Data来使用Redis(键/值存储)、HBase(列族)、MongoDB(文档数据库)以及Neo4j(图数据库);
· 探索GemFire分布式数据网格解决方案;
· 将Spring Data JPA管理的实体以RESTful Web服务的形式导出到Web中;
· 使用轻量级的对象映射框架,简化HBase应用的开发;
· 使用Spring Batch和Spring Integration构建大数据管道。


  1. 第一部分 背景知识
  2. 第1章 spring data项目 
  3. 1.1 为spring开发人员提供的nosql数据访问功能 
  4. 1.2 主题概述 
  5. 1.3 领域 
  6. 1.4 示例代码 
  7. 1.4.1 将源码导入到ide 
  8. 第2章 repository:便利的数据访问层
  9. 2.1 快速入门
  10. 2.2 定义查询方法
  11. 2.2.1 查找查询的策略
  12. 2.2.2 衍生查询
  13. 2.2.3 分页和排序
  14. 2.3 定义repository 
  15. 2.3.1 调整repository接口
  16. 2.3.2 手动实现repository方法
  17. 2.4 ide集成
  18. 2.4.1 intelli idea 
  19. 第3章 使用querydsl实现类型安全的查询 
  20. 3.1 querydsl简介
  21. 3.2 生成查询元模型
  22. 3.2.1 构建系统集成
  23. 3.2.2 所支持的注解处理器
  24. 3.2.3 使用querydsl对存储进行查询
  25. 3.3 集成spring data repository 
  26. 3.3.1 执行断言
  27. 3.3.2 手动实现repository 
  28. 第二部分 关系型数据库
  29. 第4章 jpa repository 
  30. 4.1 示例工程
  31. 4.2 传统方式
  32. 4.3 启动示例代码
  33. 4.4 使用spring data repository 
  34. 4.4.1 事务性
  35. 4.4.2 repository与querydsl集成
  36. 第5章 借助querydsl sql实现类型安全的jdbc编程
  37. 5.1 示例工程与搭建过程
  38. 5.1.1 hypersql数据库
  39. 5.1.2 querydsl的sql模块
  40. 5.1.3 构建系统集成
  41. 5.1.4 数据库模式
  42. 5.1.5 示例工程的领域实现
  43. 5.2 querydsljdbctemplate 
  44. 5.3 执行查询
  45. 5.3.1 repository实现起步
  46. 5.3.2 查询单个对象
  47. 5.3.3 onetomanyresultsetextractor抽象类
  48. 5.3.4 customerlistextractor实现
  49. 5.3.5 rowmapper的实现类
  50. 5.3.6 查询对象列表
  51. 5.4 插入、更新和删除操作
  52. 5.4.1 使用sqlinsertclause进行插入操作 
  53. 5.4.2 使用sqlupdateclause进行更新操作
  54. 5.4.3 使用sqldeleteclause进行删除行操作
  55. 第三部分 nosql
  56. 第6章 mongodb: 文档存储
  57. 6.1 mongodb简介
  58. 6.1.1 设置mongodb 
  59. 6.1.2 使用mongodb shell 
  60. 6.1.3 mongodb java驱动
  61. 6.2 使用spring命名空间搭建基础设施
  62. 6.3 映射模块
  63. 6.3.1 领域模型
  64. 6.3.2 搭建映射的基础设施 
  65. 6.3.3 索引
  66. 6.3.4 自定义转换
  67. 6.4 mongotemplate 
  68. 6.5 mongo repository 
  69. 6.5.1 搭建基础设施
  70. 6.5.2 repository详解
  71. 6.5.3 mongo querydsl集成
  72. 第7章 neo4j:图数据库
  73. 7.1 图数据库
  74. 7.2 neo4j 
  75. 7.3 spring data neo4j概览
  76. 7.4 将领域建模为图
  77. 7.5 使用spring data neo4j持久化领域对象
  78. 7.5.1 neo4jtemplate 
  79. 7.6 组合发挥图和repository的威力
  80. 7.6.1 基本的图repository操作
  81. 7.6.2 衍生和基于注解的查找方法
  82. 7.7 示例领域模型中的高级图用例
  83. 7.7.1 单个节点的多重角色
  84. 7.7.2 以产品分类和标签为例讲解图中的索引
  85. 7.7.3 利用类似的兴趣(协同过滤)
  86. 7.7.4 推荐
  87. 7.8 事务、实体生命周期以及抓取策略
  88. 7.9 高级映射模型
  89. 7.10 使用neo4j服务器
  90. 7.11 从这里继续学习
  91. 第8章 redis:键/值存储
  92. 8.1 redis概述 
  93. 8.1.1 搭建redis 
  94. 8.1.2 使用redis shell 
  95. 8.2 连接到redis
  96. 8.3 对象转换
  97. 8.4 对象映射
  98. 8.5 原子级计数器
  99. 8.6 发布/订阅功能
  100. 8.6.1 对信息进行监听和响应
  101. 8.6.2 在redis中使用spring的缓存抽象
  102. 第四部分 快速应用开发
  103. 第9章 使用spring roo实现持久层
  104. 9.1 roo简介
  105. 9.2 roo的持久层
  106. 9.3 快速起步
  107. 9.3.1 借助命令行使用roo 
  108. 9.3.2 借助spring tool suite使用roo 
  109. 9.4 spring roo jpa repository示例
  110. 9.4.1 创建工程
  111. 9.4.2 搭建jpa持久化
  112. 9.4.3 创建实体
  113. 9.4.4 定义repository 
  114. 9.4.5 创建web层
  115. 9.4.6 运行示例
  116. 9.5 spring mongodb jpa repository的例子
  117. 9.5.1 创建工程
  118. 9.5.2 搭建mongodb持久化
  119. 9.5.3 创建实体
  120. 9.5.4 定义repository 
  121. 9.5.5 创建web层
  122. 9.5.6 运行示例
  123. 第10章 rest repository导出器
  124. 10.1 示例工程
  125. 10.1.1 与rest导出器进行交互
  126. 10.1.2 访问product 
  127. 10.1.3 访问customer 
  128. 10.1.4 访问order 
  129. 第五部分 大数据
  130. 第11章 spring for apache hadoop 
  131. 11.1 hadoop开发面临的挑战
  132. 11.2 hello world
  133. 11.3 揭秘hello world
  134. 11.4 使用spring for apache hadoop的hello world 
  135. 11.5 在jvm中编写hdfs脚本
  136. 11.6 结合hdfs脚本与job提交
  137. 11.7 job调度
  138. 11.7.1 使用taskscheduler调度mapreduce job 
  139. 11.7.2 使用quartz调度mapreduce job 
  140. 第12章 使用hadoop分析数据
  141. 12.1 使用hive 
  142. 12.1.1 hello world 
  143. 12.1.2 运行hive服务器
  144. 12.1.3 使用hive thrift客户端
  145. 12.1.4 使用hive jdbc客户端
  146. 12.1.5 使用hive分析apache日志文件 
  147. 12.2 使用pig
  148. 12.2.1 hello world
  149. 12.2.2 运行pigserver
  150. 12.2.3 控制运行期脚本的执行
  151. 12.2.4 在spring integration数据管道中调用pig脚本
  152. 12.2.5 使用pig分析apache日志文件
  153. 12.3 使用hbase 
  154. 12.3.1 hello world 
  155. 12.3.2 使用hbase java客户端
  156. 第13章 使用spring batch和spring integration创建大数据管道
  157. 13.1 收集并将数据加载到hdfs
  158. 13.1.1 spring integration介绍
  159. 13.1.2 复制日志文件
  160. 13.1.3 事件流
  161. 13.1.4 事件转发
  162. 13.1.5 管理
  163. 13.1.6 spring batch简介
  164. 13.1.7 从数据库中加载并处理数据
  165. 13.2 hadoop工作流
  166. 13.2.1 spring batch对hadoop的支持 
  167. 13.2.2 将wordcount样例改造为spring batch应用
  168. 13.2.3 hive和pig的步骤
  169. 13.3 从hdfs导出数据
  170. 13.3.1 从hdfs到jdbc 
  171. 13.3.2 从hdfs到mongodb 
  172. 13.4 收集并加载数据到splunk 
  173. 第六部分 数据网格
  174. 第14章 分布式数据网格:gemfire 
  175. 14.1 gemfire简介
  176. 14.2 缓存与域
  177. 14.3 如何获取gemfire 
  178. 14.4 通过spring xml命名空间配置gemfire 
  179. 14.4.1 缓存配置
  180. 14.4.2 域配置
  181. 14.4.3 缓存客户端配置
  182. 14.4.4 缓存服务端配置
  183. 14.4.5 wan配置
  184. 14.4.6 磁盘存储配置
  185. 14.5 使用gemfiretemplate进行数据访问 
  186. 14.6 使用repository
  187. 14.6.1 pojo映射
  188. 14.6.2 创建repository 
  189. 14.6.3 pdx序列化
  190. 14.7 支持持续查询
书名:Spring Data实战
译者:张卫滨, 文建国 译
国内出版社:人民邮电出版社
出版时间:2014年02月
页数:248
书号:978-7-115-34370-3
原版书书名:Spring Data
原版书出版商:O'Reilly Media
Mark Pollack
 
Mark Pollack博士曾在布鲁克黑文国家实验室研究高能物理学方面的大数据解决方案,随后转移到金融服务领域担任前端交易系统的技术领导和架构师。他长期以来关注软件开发流程的最佳实践和改善,Mark从2003年就参与核心Spring(Java)的开发,并在2004年成立了Microsoft对应的项目也就是Spring.NET。Mark现在领导着Spring Data项目,在使用大数据和NoSQL数据库这些新技术时,这个项目能够简化应用的开发。
 
 
Oliver Gierke
 
Oliver Gierke是SpringSource的工程师,这是VMware 的一个子部门,目前他担任Spring Data JPA、MongoDB以及核心模块的领导者。他参与企业级应用和开源项目的开发已经超过了6年,其工作的关注点在软件架构、Spring以及持久化技术方面。他经常在德国以及一些国际会议上进行演讲,写过很多的技术文章。
 
 
Thomas Risberg
 
Thomas Risberg目前是Spring Data团队的成员,关注于MongoDB和JDBC扩展项目。他也是Spring框架项目的提交者,主要的贡献在于对JDBC框架的增强方面。Thomas在VMware的Cloud Foundry团队,为Cloud Foundry所支持的各种框架和语言开发集成方案。他是《Professional Java Development with the Spring Framework》一书的合著者,这本书出版于2005年,作者还包括Rod Johnson、Juergen Hoeller、Alef Arendsen以及Colin Sampaleanu。
 
 
Jon Brisbin
 
Jon Brisbin是SpringSource Spring Data团队的成员,致力于为开发人员提供有用的库,从而简化下一代数据形式的管理。他曾帮忙将Grails GORM的对象映射器转移到基于Java的应用程序之中,并为集成Riak数据存储与RabbitMQ消息代理提供组件。除此之外,他还针对事件应用模型撰写博客并发表演讲,他勤奋工作的领域还包括为前沿的非阻塞模式和传统的基于JVM的应用搭建桥梁。
 
 
Michael Hunger
 
Michael Hunger长期热衷于软件开发。他尤其关注于开发软件的人、软件技艺、编程语言以及代码提升。最近两年间,他与Neo Technology协作开发Neo4j图数据库。作为Spring Data Neo4j的领导者,他为对象-图映射开发出了便利且完整的解决方案。他还参与Neo4j云托管。作为一名开发人员,Michael喜欢使用各种编程语言、每天学习新的东西、参与有趣且有前景的开源项目,并且参与编写了多本与编程相关的图书。Michael还是InfoQ的活跃编辑和采访者。