Java 无法在spring中配置正确的mongo db名称
我现在在MongoDB和Spring潜水。 尽管配置了另一个数据库,但它仍尝试从错误的数据库创建/读取 这是我的密码: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
@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