Spring集成MongoDB的mongo:db-factory和mongo:template配置文件解析

   <!-- db-factory:定义一个连接具体数据库的MongoDbFactory
   id:MongoDbFactory的名字,默认值:mongoDbFactory
   mongo-ref:MongoClient实例的引用,如果没有配置,则com.mongodb.MongoClient的默认实例会被创建
   dbname:将要连接的DB的名称,默认:db
   client-uri:MongoClientURI字符串,类似:mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]
   write-concern:WriteConcern的7种写入安全机制抛出异常的级别:
      NONE:没有异常抛出
      NORMAL:仅抛出网络错误异常,没有服务器错误异常,写入到网络就返回
      SAFE:抛出网络错误异常、服务器错误异常;并等待服务器完成写操作。
      MAJORITY: 抛出网络错误异常、服务器错误异常;并多数主服务器完成写操作。
      FSYNC_SAFE: 抛出网络错误异常、服务器错误异常;写操作等待服务器将数据刷新到磁盘。
      JOURNAL_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器提交到磁盘的日志文件。
      REPLICAS_SAFE:抛出网络错误异常、服务器错误异常;等待至少2台服务器完成写操作。
   -->

<mongo:db-factory id="mongoDbFactory" dbname="member" mongo-ref="mongoClient"/>
   <!-- template:定义一个MongoTemplate
   id:定义MongoTemplate的名字,默认mongoTemplate
   converter-ref:MappingMongoConverter实例的引用
   db-factory-ref:DbFactory的引用
   write-concern:WriteConcern的7种写入安全机制抛出异常的级别:
      NONE:没有异常抛出
      NORMAL:仅抛出网络错误异常,没有服务器错误异常,写入到网络就返回
      SAFE:抛出网络错误异常、服务器错误异常;并等待服务器完成写操作。
      MAJORITY: 抛出网络错误异常、服务器错误异常;并多数主服务器完成写操作。
      FSYNC_SAFE: 抛出网络错误异常、服务器错误异常;写操作等待服务器将数据刷新到磁盘。
      JOURNAL_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器提交到磁盘的日志文件。
      REPLICAS_SAFE:抛出网络错误异常、服务器错误异常;等待至少2台服务器完成写操作。
   -->
<mongo:template id="mongoTemplate" db-factory-ref="mongoDbFactory" write-concern="NORMAL"/>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,如果你使用 Spring Boot Starter Data MongoDB,那么在使用 MongoTemplate 之前,需要配置 MongoTemplate。在 Spring Boot 中,可以通过在配置类上添加注解 `@EnableMongoRepositories` 来启用 MongoDB 集成。 以下是一个简单的配置类示例,它定义了一个名为 mongoTemplateMongoTemplate bean: ``` @Configuration @EnableMongoRepositories(basePackages = "com.example.mongo.repositories") public class MongoConfig extends AbstractMongoClientConfiguration { @Value("${spring.data.mongodb.uri}") private String connectionString; @Value("${spring.data.mongodb.database}") private String dbName; @Override public MongoClient mongoClient() { ConnectionString connString = new ConnectionString(connectionString); MongoClientSettings settings = MongoClientSettings.builder() .applyConnectionString(connString) .build(); return MongoClients.create(settings); } @Override protected String getDatabaseName() { return dbName; } @Bean public MongoTemplate mongoTemplate() throws Exception { return new MongoTemplate(mongoClient(), getDatabaseName()); } } ``` 在这个例子中,我们使用 `@EnableMongoRepositories` 注解来启用 MongoDB 集成,并指定了存储库接口的基本包名称。在 `mongoClient()` 方法中,我们创建了一个 MongoDB 客户端并返回它。在 `mongoTemplate()` 方法中,我们创建了一个名为 mongoTemplateMongoTemplate bean。这个 bean 可以直接在你的代码中注入并使用。 注意,这里我们继承了 `AbstractMongoClientConfiguration` 类,这是因为它提供了一些默认的配置,例如自动配置MongoClient 和 MongoDatabaseFactory。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值