Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring数据mongo-没有名为';mongoTemplate&x27;定义_Java_Spring_Mongodb_Spring Data_Spring Data Mongodb - Fatal编程技术网

Java spring数据mongo-没有名为';mongoTemplate&x27;定义

Java spring数据mongo-没有名为';mongoTemplate&x27;定义,java,spring,mongodb,spring-data,spring-data-mongodb,Java,Spring,Mongodb,Spring Data,Spring Data Mongodb,我有一个SpringDataMongo存储库类 public interface MyRepository extends MongoRepository<FeedbackDTO, String> { } 当我尝试测试使用此存储库的服务类时,它会抛出一个异常 原因:org.springframework.beans.factory.NoSuchBean定义异常:未定义名为“mongoTemplate”的bean 在org.springframework.beans.factory.

我有一个SpringDataMongo存储库类

public interface MyRepository extends MongoRepository<FeedbackDTO, String> {
}
当我尝试测试使用此存储库的服务类时,它会抛出一个异常

原因:org.springframework.beans.factory.NoSuchBean定义异常:未定义名为“mongoTemplate”的bean 在org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:698)~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] 在org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175)~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] 在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.resolverence(BeanDefinitionValueResolver.java:351)~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] ... 省略57个公共框架


@enablemongorepositionals
注释将在启动时触发存储库bean的创建,但您仍然需要注册MongoDB连接并创建注入这些存储库的
MongoTemplate
实例。看。以下是一个例子:

@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);
    }

}
@配置
@PropertySource({“classpath:mongodb数据源.properties”})
公共类MongodbDataSourceConfig扩展了AbstractMongoConfiguration{
@自动连线环境;
@凌驾
公共字符串getDatabaseName(){
返回env.getRequiredProperty(“mongo.name”);
}
@凌驾
@豆子
public Mongo Mongo()引发异常{
ServerAddress ServerAddress=新服务器地址(env.getRequiredProperty(“mongo.host”);
列表凭据=新建ArrayList();
credentials.add(MongoCredential.createScramSha1Credential(
环境getRequiredProperty(“mongo.username”),
环境getRequiredProperty(“mongo.name”),
env.getRequiredProperty(“mongo.password”).toCharArray()
));
MongoClientOptions=新建MongoClientOptions.Builder()
.build();
返回新的MongoClient(服务器地址、凭据、选项);
}
}

name和username之间有什么区别?在spring 2.1中,类已重命名为AbstractMongoClient配置
@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);
    }

}