微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。