- 内容提要
- 序
- 前言
- 第一部分 背景知识
- 第 1 章 Spring Data 项目
- 第 2 章 Repository:便利的数据访问层
- 第 3 章 使用 Querydsl 实现类型安全的查询
- 第二部分 关系型数据库
- 第 4 章 JPA Repository
- 第 5 章 借助 Querydsl SQL 实现类型安全的 JDBC 编程
- 第三部分 NoSQL
- 第 6 章 MongoDB: 文档存储
- 第 7 章 Neo4j:图数据库
- 第 8 章 Redis:键/值存储
- 第四部分 快速应用开发
- 第 9 章 使用 Spring Roo 实现持久层
- 第 10 章 REST Repository 导出器
- 第五部分 大数据
- 第 11 章 Spring for Apache Hadoop
- 第 12 章 使用 Hadoop 分析数据
- 第 13 章 使用 Spring Batch 和 Spring Integration 创建大数据管道
- 第六部分 数据网格
- 第 14 章 分布式数据网格:GemFire
- 关于封面
6.2 使用 Spring 命名空间搭建基础设施
首先,Spring Data MongoDB 会帮我们设置必要的基础设施来与 MongoDB 实例进行交互,这些基础设施就是一些 Spring Bean。使用 JavaConfig,可以简单地继承 AbstractMongoConfiguration 类,它包含许多基本配置,但是也可以通过重写方法来进行按需调整。我们的配置类如示例 6-11 所示。
示例 6-11 使用 JavaConfig 构建 MongoDB 基础设施
必须实现两个方法来设置 MongoDB 的基础设施,要提供数据库的名称以及一个封装了如何连接到数据库的 Mongo 实例。我们使用默认的构造函数,它会假设已经有一个运行在本地机器上的 MongoDB 实例并监听默认的端口 27017。稍后,将 WriteConcern 设置为 SAFE 模式。WriteConcern 定义了在写操作时驱动等待服务器的时间。默认设置是不等待,也不会对网络异常或者尝试写入非法数据做出响应 (译者注:WriteConcern 默认设置为 NORMAL,会在网络错误时抛出异常,但是服务器错误不会抛异常。原文描述的应该是 WriteConcern 的 NONE 模式,而不是默认模式)。 设置为 SAFE 将在网络错误时抛出异常,并让驱动一直等待,直到服务器可以正常写入数据为止。它也将在违反索引约束时做出响应,稍后会加以介绍。
这两个配置项将会在 SimpleMongoDbFactory Bean 定义里面结合起来(见 Abstract MongoConfiguration 的 mongoDbFactory() 方法)。MongoDbFactory 会被 Mongo Template 实例使用,它也会通过基类来进行配置。MongoTemplate 是与 MongoDB 实例交互的主要 API,并可以持久化或取回对象。注意,在示例项目中所看到的配置类已经包含了扩展配置,稍后将会加以说明。
上述配置的 XML 版本如示例 6-12 所示。
示例 6-12 使用 XML 搭建 MongoDB 环境
<db-factory>元素使用类似于 JavaConfig 示例的方式来配置 SimpleMongoDbFactory,唯一的不同是它也可以预置要使用的 Mongo 实例,这在 JavaConfig 中必须手动设置。我们可以手动定义<mongo:mongo />元素以按需定制它的属性值,但是为了避免使用这种方式,我们直接在 MongoTemplate 中配置了 WriteConcern,这样只能调用模板配置好的 concern 方式来执行所有的写操作。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论