Im в настоящее время погружается в MongoDB и Spring. Хотя другой db настроен, он по-прежнему пытается создать/прочитать с неправильного db.cant config correct mongo db name весной
Вот мой код:
@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");
}
}
Handler:
@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():
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
Как вы можете видеть, объект Монго относится испытать .user, но почему? Необходима ли дополнительная конфигурация? Весной используется тест db.
У вас есть весенний ботинок в этом проекте? Вы уверены, что ваш «MongoConfig» выполнен? Потому что кажется, что «MongoTemplate» на самом деле автоматически настроен весной. – Roman
Да, я использую весенний ботинок. Я уже отслеживал, что это вызвано аннотацией @ @ SpringBootApplication. Но если я удалю это, все мое приложение больше не запускается. Im в настоящее время ищет обходной путь или некоторые указатели, как управлять этим – lunatikz