MongoFactoryBean 和 SimpleMongoDbFactory 的区别

2023-11-23

我正在设置 MongoDB Spring MVC 应用程序并尝试使用 Service、DAO 模式。

我阅读了 Spring-Data-MongoDB 参考here,但我不明白 MongoFactoryBean 和 SimpleMongoDbFactory 之间有什么区别。

创建 MongoTemplate bean 的更好方法是什么?为什么?

@Configuration
public class SpringMongoConfig {
    public @Bean
    MongoDbFactory mongoDbFactory() throws Exception {
       return new SimpleMongoDbFactory(new MongoClient(), "yourdb");
    }

    public @Bean
    MongoTemplate mongoTemplate() throws Exception {
       MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory());
       return mongoTemplate;
    }
}

OR.

@Bean
public MongoFactoryBean mongo() {
    MongoFactoryBean mongo = new MongoFactoryBean();
    mongo.setHost(env.getProperty("db.host"));
    mongo.setPort(env.getProperty("db.port",Integer.class,27017));
    return mongo;
}

@Bean
public MongoTemplate mongoTemplate() throws Exception{
    return new MongoTemplate(mongo().getObject(),env.getProperty("db.name"));
}

什么时候使用 MongoFactoryBean,什么时候使用 MongoDbFactory?他们有不同的用例吗?

另外,将 MongoDB 引导到 Spring MVC 中的最佳方式是什么,使其具有高度可扩展性和可配置性,并且还提供插入任何其他 RDBMS(用于相同或不同功能)的规定。 (也许针对不同的数据库类型有两种不同的 DAO 实现?)


我很惊讶这个问题仍然没有得到回答。尽管这可能不是您正在寻找的确切答案,但这是我对事情的看法。我发现使用第二种方法,MongoFactoryBean,是最好的方法。

仅仅是因为有更多的配置选项。例如,如果您想设置异常转换器,您可以使用以下命令轻松完成MongoFactoryBean.

如果我没记错的话,我可能是错的,MongoFactoryBean 是为了方便MongoDbFactory。意思是,它增加了另一层抽象。

总而言之,采用第二种方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoFactoryBean 和 SimpleMongoDbFactory 的区别 的相关文章

随机推荐

  • 什么是静态构造函数?

    在一次采访中有人问我这个问题 什么是静态构造函数 C 中存在吗 如果是 请举例说明 C 没有静态构造函数 但您可以使用嵌套类的静态实例来模拟它们 class has static constructor friend class const
  • 如何设置 Selenium Python WebDriver 默认超时?

    尝试找到一种好方法来设置 Selenium Python WebDriver 中命令执行延迟的最大时间限制 理想情况下 类似 my driver get my driver my driver set timeout 30 seconds
  • IFrame 破坏文件 - 它们的用途是什么?

    在查看一些广告公司 DoubleClick Atlas 时 我遇到了 iframe Buster 文件的概念 这些文件与广告发布商托管在同一主机上 一个示例 http www adopstools com ibusters atlas at
  • CakePhp 中的 unbindModel 调用。它是如何工作的?

    蛋糕中unbindModel是如何发生的 this gt User gt unbindModel array hasAndBelongsToMany gt array Friend 我在函数的开头写了这个 但它仍然质疑 朋友 模型 函数中间
  • 在opencv python中创建透明图像

    我正在尝试制作一个透明图像并在其上绘图 然后在基础图像上添加加权 如何在 openCV python 中初始化具有宽度和高度的完全透明图像 编辑 我想制作像 Photoshop 中一样的效果 具有图层堆叠 所有堆叠图层最初都是透明的 并且在
  • OpenCL 和 CUDA 中的持久线程

    我读过一些关于 GPGPU 的 持久线程 的论文 但我不太理解它 任何人都可以给我一个例子或向我展示这种编程方式的使用吗 在阅读和谷歌搜索 持久线程 后 我脑子里记住的是 持久线程只不过是一个 while 循环 可以保持线程运行并计算大量工
  • 为什么这个 Kotlin 方法有反引号?

    下面的代码片段中的反引号有什么用 为什么将它们添加到fun is amount Int Boolean verifier is amount 这是因为is是 Kotlin 中的保留关键字 由于 Kotlin 应该可以与 Java 进行互操作
  • 测试 MS Access 应用程序的最佳方法?

    由于代码 表单和数据位于同一数据库中 我想知道为 Microsoft Access 应用程序 例如 Access 2007 设计一套测试的最佳实践是什么 测试表单的主要问题之一是只有少数控件具有hwnd句柄和其他控件只能获得它们所关注的一个
  • 如何将侦听器附加到单选按钮

    我有一个显示各种单选按钮的活动 单选按钮按单选组分组 我希望某些单选按钮在选中某个单选按钮时消失 例如 当选中事件按钮时 跌倒 旅行和疾病单选按钮就会消失 我怎样才能做到这一点 我有以下代码 但需要以某种方式将侦听器附加到事件按钮 Over
  • 在 Bash 中运行 PHP 函数(并将返回值保存在 bash 变量中)

    我正在尝试在 Bash 中运行 PHP 函数 但它不起作用 bin bash usr bin php lt lt EOF EOF 实际上 我需要将返回值保存在 bash 变量中 顺便说一下 我使用 php 的 getcwd 函数只是为了说明
  • 两个应用程序之间的通信

    是否可以在两个不同的应用程序 一个在后台运行 另一个在前台运行 之间进行通信 如果是 有人可以建议如何吗 是的 iPhone 中的两个应用程序之间可以进行通信 但仅限于少数场景 可能有些应用程序需要根据某些事件 例如电话等 发送到后台 在这
  • NameError:Python 3 中未定义全局名称“xrange”

    我在运行 python 程序时遇到错误 Traceback most recent call last File C Program Files x86 Wing IDE 101 4 1 src debug tserver sandbox
  • Rails:如何跨多个子域共享永久 cookie?

    我的应用程序的注册和登录过程发生在安全子域上 为此 我修改了config initializers session store rb看起来像 if Rails env production AppName Application confi
  • Android SQL - 检查数据库中是否已存在整行

    我正在尝试创建一个简单的收藏夹应用程序 您可以在其中保存您的收藏夹页面 例如来自网络的页面 假设我的数据库中有以下数据 Title URL TAG Hey Ho com Site Jo Jo com Image Jo Mo com Imag
  • 在Python中计算*多*组地理坐标之间的距离

    我正在努力计算之间的距离multiple纬度和经度坐标集 简而言之 我发现了许多使用数学或几何学的教程 当我只想找到一组坐标 或两个唯一位置 之间的距离时 这些教程非常有用 然而 我的目标是扫描具有 400k 个起点和目的地坐标组合的数据集
  • 升级Android应用程序时报告ClassNotFoundException错误

    我看过很多关于 ClassNotFoundException 和 Android 的帖子 但我还没有找到我所经历的原因 我有一个应用程序 数据计数器小部件 在 Android 市场上 它的下载量超过 25 万次 每次我发布新版本时 我都会在
  • XMLHTTP onTimeOut 时如何使用 VBA 回调函数?

    我正在尝试从网络服务器获取 xml 数据到 Excel 然后我写了一个sendRequestexcel中调用的函数 sendRequest http abb com index php id 111 当网络服务器出现问题 无法连接或找不到时
  • 在 Apache 中记录 POST 数据的最佳方式?

    想象一下 您有一个站点 API 它接受带参数的 GET 请求或 POST 请求 例如 使用标准 url 编码 分隔的 POST 数据 形式的数据 如果你想记录和分析 API 调用 GET 请求会很容易 因为它们会在 apache 日志中 有
  • 使用某些属性/类在 Blazor Webassemble 中进行调试时未绑定断点

    我正在使用 VS 2019 16 8 4 开发模块化 blazor 应用程序 5 0 2 其结构如下 主要 解决方案 其中包括 RCL Wasm 项目启动应用程序 几个引用主 RCL 基本组件等 的 子 解决方案 其中包括 net5 库 模
  • MongoFactoryBean 和 SimpleMongoDbFactory 的区别

    我正在设置 MongoDB Spring MVC 应用程序并尝试使用 Service DAO 模式 我阅读了 Spring Data MongoDB 参考here 但我不明白 MongoFactoryBean 和 SimpleMongoDb