返回介绍

9.5 Spring MongoDB JPA Repository 的例子

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

因为 Spring Data 中包含了对 MongoDB Repository 的支持,所以当使用 Roo 的时候,我们可以将 MongoDB 作为可选的持久化方案。对于 MongoDB 来说,不能采用活动记录风格的持久层,只能使用 Repository。除了这一点区别之外,使用的过程与 JPA 方案基本相同。

9.5.1 创建工程

如果使用 Spring Tool Suite,那么按照之前介绍的步骤来创建新的 Spring Roo 工程。在“Create a new Roo Project”对话框界面中,进行以下设置。

  • Project name: roo-spring-data-mongo
  • Top level package name: com.oreilly.springdata.roo
  • Packaging: WAR

当使用命令行 Roo Shell 时,创建一个名为 roo-spring-data-mongo 的目录。切换到这个新的目录后,可以使用刚刚介绍过的方法启动 Roo Shell。在 roo>提示符中,输入如下的命令:

P153a

9.5.2 搭建 MongoDB 持久化

为 MongoDB 搭建持久化配置很简单。可以接受默认设置。如果你愿意的话,可以提供主机、端口、用户名和密码,但是对于默认的本地安装的 MongoDB,默认设置就可以了。所以,输入以下命令即可:

P153b

9.5.3 创建实体

当创建实体的时候,没有使用活动记录风格的可选项了,在 JPA 方案中,我们需要提供--activeRecord 参数以屏蔽掉这种方案。现在我们没有必要这样做了,对于 MongoDB 来说,Repository 是默认和唯一的持久层方案。同样,我们从 Address 类开始:

P153c

这看起来与 JPA 的例子很相似。当再看 Customer 类时,你所能发现的第一个区别可能是使用 MongoDB 时,没有使用可嵌入的类,它只对 JPA 有效。在 MongoDB 中,只需创建一个简单的类并指定--rooAnnotations 为 true 以启用 @RooJavaBean 的支持。为了使用这个类,需要将域设置为 other。除了这些小的差别,实体声明与 JPA 示例非常类似:

P153d

P154a

9.5.4 定义 Repository

声明 MongoDB Repository 的方式与 JPA Repository 方式相同,唯一的区别在于 mongo 关键字:

P154b

9.5.5 创建 Web 层

Web 层的创建与 JPA 示例完全一样:

P154c

不要忘记为 ApplicationConversionServiceFactoryBean 添加转换器,就像在示例 9-3 中为 JPA 所做的那样。

9.5.6 运行示例

现在,可以构建和部署示例了。同样与 JPA 示例一样,只不过需要系统中有正在运行的 MongoDB。关于 MongoDB 的安装和运行,可以参阅本书的第 6 章。

对于 Spring Tool Suite,只需将应用拖曳到 tc server 实例上并启动服务器即可。使用命令行的话,退出 Roo Shell 并在命令行中运行如下的 Maven 命令:

P154d

现在打开浏览器并导航到 http://localhost:8080/roo-spring-data-mongo/ ,可以看到如图 9-6 所示的界面。

9-6

图 9-6 MongoDB 应用程序

我们的第二个示例应用已经完成了,现在可以添加一些 address 并加入一两个 customer 了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

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