当前位置: 首页 > 知识库问答 >
问题:

spring data mongo-未定义名为“mongo Template”的bean

慕项明
2023-03-14

我有一个spring data mongo存储库类

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

在测试配置中,我使用EnableMongoRepositories注释

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

原因:org.springframework.beans.factory.nosuchbeandefinitionexception:在org.springframework.beans.factory.support.defaultlistablebeanfactory.getbeandefinition(defaultlistablebeanfactory.java:698)~[spring-beans-4.2.4.release.jar:4.2.4.release]在org.springframework.beanfactory.support.abstractbeanfactory.getmergedlocalbeandefinition(tory.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.197)~[spring-beans-4.2.4.release.jar]在org.springframework.beans.factory.1977)~[spring-beans-4.2.4.release.release]在org.springframework.beans.factory.support.beandefinition

共有1个答案

欧阳飞
2023-03-14

@enablemongorepositories注释将在启动时触发存储库bean的创建,但您仍然需要注册MongoDB连接并创建注入这些存储库的MongoTemplate实例。请参阅Spring Data MongoDB文档。这里有一个例子:

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

}
 类似资料:
  • 我对Spring框架非常陌生。我正在使用NetBeans作为IDE。我跟着几个教程自学。然而,我陷入了中间,不能继续前进。让我在这里分解一下我的项目: 我的项目文件夹结构如下: 有两个班;主要的一个主应用程序。java包含以下代码: 第二类文件第一页。java看起来像这样: 豆子。xml文件如下所示: 现在,我得到的错误如下: 组织。springframework。豆。工厂NoSuchBeanDe

  • 我正在尝试一个非常基本的例子。我试图查看其他堆栈溢出答案,但无法解决此问题。我是新来的这个空间,让我知道如果我遗漏了什么。 这是我的错误日志: 2017年12月11日上午8:40:20org.springframework.beans.factory.xml.XmlBean定义Reader loadBean定义信息:从类路径资源[BeanDefinition.xml]加载XML bean定义]线程

  • 我有一个简单的spring 4 WebMVC应用程序(-config),我想添加JPA。但是,当我尝试运行应用程序时(就像在Tomcat上的deloyed一样),我会发现:什么可能是错误的来源? 创建名为“index controller”的bean时出错:注入autowired依赖项失败;嵌套异常为org.springframework.beans.factory.beancreationexc

  • 问题内容: JDK1.7 Tomcat8 Redis SV 3.0 Spring3.2.14,Jedis 2.8.1,Spring Session 1.2,Spring Data Redis 1.7 这是我的日志。我不知道如何解决这个问题。 看起来RedisHttpSessionConfiguration bean已经创建, 为什么还没有定义filter bean? 我无法更改为spring4,因

  • 尽管标题出现了,但这并不是一个哲学问题。 从未初始化的数组读取 使用错误数据 使用不可移植构造。(即内存分配的细节1) 导致具有的行为 标准没有要求产生可预测的效果 我会称之为“未定义的行为”。但也许我错过了什么(?) null null

  • 问题内容: 我正在从参考资料中学习Spring安全性。发布3.1.2.RELEASE。如前所述,我已经像这样配置了标签 security-context.xml web.xml security-servlet.xml 但是在启动应用程序时出现此异常。如果我删除安全配置,我的Spring Web应用程序可以正常工作。我在stackoverflow中也遇到了同样的问题。但是没有运气。 问题答案: 我