Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在spring中配置正确的mongo db名称_Java_Spring_Mongodb_Spring Boot - Fatal编程技术网

Java 无法在spring中配置正确的mongo db名称

Java 无法在spring中配置正确的mongo db名称,java,spring,mongodb,spring-boot,Java,Spring,Mongodb,Spring Boot,我现在在MongoDB和Spring潜水。 尽管配置了另一个数据库,但它仍尝试从错误的数据库创建/读取 这是我的密码: @Configuration @EnableMongoRepositories public class MongoConfig { @Bean public MongoClientFactoryBean mongo() { MongoClientFactoryBean mongo = new MongoClientFactoryBean(); mon

我现在在MongoDB和Spring潜水。 尽管配置了另一个数据库,但它仍尝试从错误的数据库创建/读取

这是我的密码:

@Configuration
@EnableMongoRepositories
public class MongoConfig {

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

  @Bean
  public MongoOperations mongoTemplate(Mongo mongo) {
      return new MongoTemplate(mongo, "gabble");
  }
}
处理程序:

@Component
public class SomeHandler {
  private static final Logger log = Logger.getLogger(SomeHandler.class);
  private MongoOperations mongo;


  @Autowired
  public SomeHandler(MongoOperations mongo) {
      this.mongo = mongo;
  }

  public void registerNewUser(User user, Credential credential) {       
    log.info(mongo.getCollectionNames());

    mongo.save(user,"user");
    mongo.save(credential,"credential");

    log.info("count: "+mongo.getCollection("user").count());
    log.info("content: "+mongo.getCollection("user").find());
    log.info("stored new user in database");
  }
}
log.info()的输出:

如您所见,mongo对象指的是test.user,但为什么呢?
是否需要更多配置?db测试也是由spring创建的

因为您使用的是spring boot,所以只需使用它的-将以下行添加到
应用程序.properties
文件中即可:

spring.data.mongodb.uri=mongodb://localhost/gabble

然后完全删除
MongoConfig
类。

该项目中有spring boot吗?是否确定已执行
MongoConfig
?因为看起来
MongoTemplate
实际上是由spring boot自动配置的。是的,我使用spring boot。我已经找到了,它似乎是由
@SpringBootApplication
注释引起的。但是如果我删除这个,我的整个应用程序就不会再启动了。我目前正在寻找解决办法或一些如何管理这一点的指针
2016-08-03 14:46:13 INFO  SomeHandler:29 - count: 1
2016-08-03 14:46:13 INFO  SomeHandler:30 - content: Cursor id=0, ns=test.user, query={ }, numIterated=0, readPreference=primary