java - 自定义 MongoDB spring 数据存储库

标签 java spring mongodb spring-boot mongorepository

我想用 Spring data mongodb 实现自定义 repo。 应用程序.java:

@SpringBootApplication
public class Application implements CommandLineRunner{

    @Autowired
    private CustomerRepositoryCustom repo;

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println(this.repo.customMethod());
    }
}

我的自定义存储库 CustomerRepositoryCustom.java

public interface CustomerRepositoryCustom {
    List<Customer> customMethod();
}

自定义实现CustomCustomerRepositoryImpl.java

  public class CustomCustomerRepositoryImpl implements CustomerRepositoryCustom {
        @Autowired
        private MongoTemplate mongoTemplate;

        @Override
        public List<Customer> customMethod() {
            return this.mongoTemplate.findAll(Customer.class);
        }

    }

代码结构

-Application.java
  dal
    model...
    repository
     -CustomCustomerRepositoryImpl.java
     -CustomerRepositoryCustom.java

当我尝试构建它时,出现错误:

    **Description**:
Field repo in socketApp.Application required a bean of type 'socketApp.dal.repository.CustomerRepositoryCustom' that could not be found.


**Action**:
Consider defining a bean of type 'socketApp.dal.repository.CustomerRepositoryCustom' in your configuration.

最佳答案

您必须让 Spring 知道您的存储库。对于 Spring Boot 应用程序,这通常是通过将此注释添加到您的应用程序来完成的...

@EnableMongoRepositories("com.package.path.to.repository")

.... 从而告诉 Spring Boot 在哪里寻找 Mongo 存储库,然后让您的界面扩展 org.springframework.data.mongodb.repository.MongoRepository

例如:

public interface CustomerRepositoryCustom extends MongoRepository {
    List<Customer> customMethod();
}

或者,您可以使用 @Repository 注释您的 CustomCustomerRepositoryImpl 并确保它位于 Spring Boot 扫描的包中。

关于java - 自定义 MongoDB spring 数据存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863031/

相关文章:

java - 将按钮与框组件对齐

Java Swing : JSplitPane split two component equals size at start up

java - 如何使用 Spring DM 在 AWT EventQueue 上创建 Swing OSGi 包

C# 将两个集合连接在一起

mongodb恢复似乎没有恢复所有文档

java - 我遇到此错误 java.lang.NullPointerException : Attempt to invoke interface method 'int java.util.List.size()' on a null object reference

java - 页面更改时更改 fragment 内容,ViewPager

spring - 部署为 WAR 时无法使用 Spring Boot WebFlux 解决 View 异常

java - Spring MVC 表单输入值始终为空

javascript - 有没有办法找到匹配两个不同填充的文档并在 findOne() 中获取他的文档?