返回介绍

6.2 使用 Spring 命名空间搭建基础设施

发布于 2025-04-22 19:57:18 字数 1403 浏览 0 评论 0 收藏

首先,Spring Data MongoDB 会帮我们设置必要的基础设施来与 MongoDB 实例进行交互,这些基础设施就是一些 Spring Bean。使用 JavaConfig,可以简单地继承 AbstractMongoConfiguration 类,它包含许多基本配置,但是也可以通过重写方法来进行按需调整。我们的配置类如示例 6-11 所示。

示例 6-11 使用 JavaConfig 构建 MongoDB 基础设施

c0611

必须实现两个方法来设置 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 环境

c0612

<db-factory>元素使用类似于 JavaConfig 示例的方式来配置 SimpleMongoDbFactory,唯一的不同是它也可以预置要使用的 Mongo 实例,这在 JavaConfig 中必须手动设置。我们可以手动定义<mongo:mongo />元素以按需定制它的属性值,但是为了避免使用这种方式,我们直接在 MongoTemplate 中配置了 WriteConcern,这样只能调用模板配置好的 concern 方式来执行所有的写操作。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。