2016-08-03 3 views
0

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.

+0

У вас есть весенний ботинок в этом проекте? Вы уверены, что ваш «MongoConfig» выполнен? Потому что кажется, что «MongoTemplate» на самом деле автоматически настроен весной. – Roman

+0

Да, я использую весенний ботинок. Я уже отслеживал, что это вызвано аннотацией @ @ SpringBootApplication. Но если я удалю это, все мое приложение больше не запускается. Im в настоящее время ищет обходной путь или некоторые указатели, как управлять этим – lunatikz

ответ

1

Поскольку вы используете багажник пружины, вы можете просто использовать его auto-configuration capabilities - добавьте следующую строку в файл application.properties:

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

и удалить MongoConfig класс полностью.