0
我目前正在MongoDB和春季潛水。 雖然配置了另一個數據庫,但它仍嘗試從錯誤的數據庫創建/讀取。不能配置正確的mongo db名稱在春天
這裏是我的代碼:
@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()的輸出:
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測試也是在spring中創建的。
該項目是否有彈簧啓動?你確定你的'MongoConfig'被執行了嗎?因爲'MongoTemplate'似乎是通過spring啓動實際自動配置的。 – Roman
是的,我使用彈簧引導。我已經追蹤到,它似乎是由@ SpringBootApplication註釋引起的。但是,如果我刪除這個,我的整個應用程序不再開始了。我目前正在尋找解決方法或一些指針如何管理這一點 – lunatikz