2016-02-29 4 views
1

У меня есть пружинные данные Монго хранилища классапружинных данных Монго - Нет боб под названием «mongoTemplate» не определен

public interface MyRepository extends MongoRepository<FeedbackDTO, String> { 
} 

в тестовой конфигурации я использую EnableMongoRepositories аннотацию

@EnableMongoRepositories(basePackages={"com.mypackage.repository.mongodb"}) 
public class ServiceTestConfiguration { 

, когда я пытаюсь испытайте класс обслуживания, который использует этот репозиторий, он выдает исключение

Причина: org.springframework.beans.factor y.NoSuchBeanDefinitionException: бит bean с именем 'mongoTemplate' не определен на org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition (DefaultListableBeanFactory.java:698) ~ [spring-beans-4.2.4.RELEASE.jar: 4.2. 4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition (AbstractBeanFactory.java:1175) ~ [spring-beans-4.2.4.RELEASE.jar: 4.2.4.RELEASE] at org. springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:284) ~ [spring-beans-4.2.4.RELEASE.jar: 4.2.4.RELEASE] на org.springframework.beans.factory.support. AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) ~ [spring-beans-4.2.4.RELEASE.jar: 4.2.4.RELEASE] на org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference (BeanDefinitionValue Resolver.java:351) ~ [весна-бобы-4.2.4.RELEASE.jar: 4.2.4.RELEASE] ... 57 общих рамки опущены

ответ

2

@EnableMongoRepositories аннотаций будут инициировать создание хранилища фасоли на но вам все равно необходимо зарегистрировать соединение MongoDB и создать экземпляр MongoTemplate, который вводится в эти репозитории. См. Spring Data MongoDB documentation. Вот пример:

@Configuration 
@PropertySource({ "classpath:mongodb-data-source.properties" }) 
public class MongodbDataSourceConfig extends AbstractMongoConfiguration { 

    @Autowired Environment env; 

    @Override 
    public String getDatabaseName(){ 
     return env.getRequiredProperty("mongo.name"); 
    } 

    @Override 
    @Bean 
    public Mongo mongo() throws Exception { 

     ServerAddress serverAddress = new ServerAddress(env.getRequiredProperty("mongo.host")); 
     List<MongoCredential> credentials = new ArrayList<>(); 
     credentials.add(MongoCredential.createScramSha1Credential(
       env.getRequiredProperty("mongo.username"), 
       env.getRequiredProperty("mongo.name"), 
       env.getRequiredProperty("mongo.password").toCharArray() 
     )); 
     MongoClientOptions options = new MongoClientOptions.Builder() 
      .build(); 
     return new MongoClient(serverAddress, credentials, options); 
    } 

} 
+0

спасибо. это сработало. – austin

Смежные вопросы