Java Spring Boot MongoDB存储库使用127.0.0.1而不是指定的DB

Java Spring Boot MongoDB存储库使用127.0.0.1而不是指定的DB,java,spring,mongodb,Java,Spring,Mongodb,我使用SpringBoot和MongoDB存储库来管理我的数据。我已在src/main/resources/application.properties文件中指定: spring.data.mongodb.uri=mongodb://fedoradb:27017 但是,我在尝试插入存储库时仍会超时: Caused by: com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting for a server

我使用SpringBoot和MongoDB存储库来管理我的数据。我已在src/main/resources/application.properties文件中指定:

spring.data.mongodb.uri=mongodb://fedoradb:27017
但是,我在尝试插入存储库时仍会超时:

Caused by: com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=127.0.0.1:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.ConnectException: Connection refused: connect}}]
at com.mongodb.BaseCluster.getServer(BaseCluster.java:82)
at com.mongodb.DBTCPConnector.getServer(DBTCPConnector.java:656)
at com.mongodb.DBTCPConnector.access$500(DBTCPConnector.java:40)
at com.mongodb.DBTCPConnector$MyPort.getConnection(DBTCPConnector.java:505)
at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:448)
at com.mongodb.DBTCPConnector.getPrimaryPort(DBTCPConnector.java:407)
at com.mongodb.DBCollectionImpl.update(DBCollectionImpl.java:265)
at com.mongodb.DBCollection.update(DBCollection.java:214)
at com.mongodb.DBCollection.save(DBCollection.java:1058)
at com.mongodb.DBCollection.save(DBCollection.java:1014)
at org.springframework.data.mongodb.core.MongoTemplate$10.doInCollection(MongoTemplate.java:954)
at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:410)
... 23 more
我的MongoConfig看起来像这样:

@Configuration
@EnableMongoRepositories(basePackages = {"com.SpringTest.repository"})
@ComponentScan("com.SpringTest.repository")
public class MongoConfig extends AbstractMongoConfiguration {

@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
    return new SimpleMongoDbFactory(new MongoClient(), getDatabaseName());
}

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

protected String getDatabaseHost() {
    return "fedoradb";
}

@Bean
@Override
public Mongo mongo() throws Exception {
    MongoClient client = new MongoClient(getDatabaseHost());
    client.setWriteConcern(WriteConcern.SAFE);
    return client;
}

@Bean
public CustomConversions customConversions() {
    List<Converter<?, ?>> converters = Lists.newArrayList();
    converters.add(new OAuth2AuthenticationConverter());
    return new CustomConversions(converters);
}

@Bean
public MappingMongoConverter mongoConverter() throws Exception {
    MongoMappingContext mappingContext = new MongoMappingContext();
    DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory());
    MappingMongoConverter mongoConverter = new MappingMongoConverter(dbRefResolver, mappingContext);
    mongoConverter.setCustomConversions(customConversions());
    return mongoConverter;
}

@Bean(name = "mongoTemplate")
public MongoTemplate mongoTemplate() throws Exception {
    return new MongoTemplate(mongoDbFactory(), mongoConverter());

}
}
}


在这种情况下,application.properties文件是否不负责设置数据库位置?

发现问题!我想使用我的mongo客户端,我正在创建一个新的默认客户端

@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
return new SimpleMongoDbFactory(new MongoClient(), getDatabaseName());
}
改为

@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
return new SimpleMongoDbFactory(mongo(), getDatabaseName());
}

恭喜!然而,由于这仅仅是一个失误,而不是一个实际问题,我建议自己结束这个问题,为社区节省一些工作。;)
@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
return new SimpleMongoDbFactory(mongo(), getDatabaseName());
}