当前位置: 首页 > 知识库问答 >
问题:

Spring mongoDB:如何用MongoClientFactoryBean配置mongoDB

怀飞扬
2023-03-14
@Configuration
public class AppConfig {

  /*
   * Use the standard Mongo driver API to create a com.mongodb.Mongo instance.
   */
   public @Bean Mongo mongo() throws UnknownHostException {
       return new Mongo("localhost");
   }
}    

使用UnknownHostException checked异常污染代码。使用checked exception是不可取的,因为基于Java的bean元数据使用方法作为设置对象依赖关系的手段,这使得调用代码变得混乱。

所以Spring提议

@Configuration
public class AppConfig {

/*
 * Factory bean that creates the com.mongodb.Mongo instance
 */
 public @Bean MongoFactoryBean mongo() {
      MongoFactoryBean mongo = new MongoFactoryBean();
      mongo.setHost("localhost");
      return mongo;
 }
}

但不幸的是,自Spring-data-mongoDB1.7以来,MongoFactoryBean已被弃用,并被MongoClientFactoryBean所取代。

@Bean
public MongoClientFactoryBean mongoClientFactoryBean() {
    MongoClientFactoryBean factoryBean = new MongoClientFactoryBean();
    factoryBean.setHost("localhost");
    return factoryBean;
}

共有1个答案

郜彦
2023-03-14

是的,它返回一个mongo:-(

但是当mongoClient扩展Mongo时,只要@autowire将bean作为Mongo就可以了

@Autowired
private Mongo mongo;

那就用吧

MongoOperations mongoOps = new MongoTemplate(mongo, "databaseName");
 类似资料:
  • Oracle正在转向通用连接池(UCP),用于维护可以借用、返回或关闭的池连接。我的webapplication在它自己的数据层中就有了这一点。这个应用程序将迁移到使用Hibernate的JPA。此时,我只能将Hibernate配置为使用Oracle JDBC驱动程序。

  • 我现在正在使用rails应用程序。在我的应用程序配置文件中,我添加了以下内容: config/application.rb 为什么未能连接fluentd关于sidekiq和web图像? 将其添加到: 将其添加到:

  • 我有一个UBUNTU/APACHE框,当我尝试使用主机名访问web服务器时,它会将我带到DocumentRoot(即/var/www),并显示那里的所有文件/文件夹(如预期的那样)。 在我的 /var/www我有几个文件夹,如 /var/www/devel和var/www/live,我如何更新我的配置,以便当我通过它的主机名[超文本传输协议://servername]击中服务器时,它会进入默认情况

  • 这段配置通过上下文进行扫描--我用调试器检查了它。问题可能出在哪里?

  • 但是如果我让Spring Boot自动配置JOOQ,那么我应该把这个设置放在哪里呢? 基本的Spring Boot配置似乎只支持在中设置,如jooq-spring-boot-example所示。 我尝试将放入中,但这对SQL没有任何影响。 有没有办法自定义Spring boot JOOQ配置,而不必自己配置JOOQ? 我使用的是SpringBoot 2.1.7.Release和JOOQ 3.11.

  • 问题内容: 我尝试执行此docker命令以使用Elasticsearch设置Jaeger Agent和Jaeger Collector。 但是此命令给出以下错误。如何用ElasticSearch配置Jaeger? 问题答案: 搜索解决方案一段时间后,我发现了一个docker-compose.yml文件,该文件具有Jaeger Query,Agent,collector和Elasticsearch配