java springboot反应性mongodb始终使用默认的localhost而不是mongoclient uri

问题描述

我有一个连接到外部MongoDB服务器的java Spring-Boot应用程序。每当我启动应用程序时,我都会看到创建了两个集群:

[    Test worker] org.mongodb.driver.cluster               : Cluster created with settings {hosts=[127.0.0.1:27017],mode=SINGLE,requiredClusterType=UNKNowN,serverSelectionTimeout='30000 ms'}`
[    Test worker] org.mongodb.driver.cluster               : Cluster created with settings {hosts=[<mymongo server address>:27017],serverSelectionTimeout='30000 ms'}

并随后引发错误

[127.0.0.1:27017] org.mongodb.driver.cluster               : Exception in monitor thread while connecting to server 127.0.0.1:27017

com.mongodb.MongoSocketopenException: Exception opening socket
    at com.mongodb.internal.connection.AsynchronousSocketChannelStream$OpenCompletionHandler.Failed(AsynchronousSocketChannelStream.java:116) ~[mongodb-driver-core-4.0.5.jar:na]...

我在本地主机上没有MongoDB。

我的Mongo客户端配置:

@Configuration
public class MongoConfiguration extends AbstractReactiveMongoConfiguration {

  @Value("${spring.data.mongodb.uri}")
  private String mongoUri;

  @Bean
  public MongoClient mongoClient() {
      return MongoClients.create(mongoUri);
  }

  @Override
  protected String getDatabaseName() {
      return "db_test";
  }
}

Spring-boot入门班:

@EnableReactiveMongoRepositories
@SpringBootApplication(exclude = {MongoAutoConfiguration.class,MongoDataAutoConfiguration.class,MongoReactiveAutoConfiguration.class,EmbeddedMongoAutoConfiguration.class})
@ConfigurationPropertiesScan(basePackages = "com.netsurf")
@EnableConfigurationProperties
public class ConfigurationServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigurationServiceApplication.class,args);
    }

}

在application.properties中,我有spring.data.mongodb.uri=mongodb://my_mongo_server_address

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)