spring - 如何使用 Spring Boot 从不同的包中 Autowiring 存储库接口(interface)?

标签 spring spring-data spring-boot

我是 Spring Boot 的新手,想从 Rest Controller 中的不同包 Autowiring 存储库。似乎当我将接口(interface)和实现放在不同的包中时, Autowiring 的实际 Controller 似乎失败了。

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.acme.repository.RawDataRepository] found for dependency:..



Controller :
package com.acme.controller;
import com.acme.repository.RawDataRepository;
// imports removed!

@RestController
@EnableAutoConfiguration
@ComponentScan("com.acme")
public class DataCollectionController {

    @Autowired
    private RawDataRepository repository;

    // code removed!
}

我曾尝试使用 @ComponentScan 注释,但这没有给出解决方案。
知道我缺少什么吗?每当我将接口(interface)放入 Controller 所在的包中时,一切都会顺利进行。

enter image description here

最佳答案

如果你有 Spring Data @Repositories在不同的包中,您必须明确 @EnableJpaRepositories (或用您自己的口味替换“Jpa”)。引导从包含 @EnableAutoConfiguration 的软件包中获取它的默认值。所以它也可以移动那个类。

关于spring - 如何使用 Spring Boot 从不同的包中 Autowiring 存储库接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23514155/

相关文章:

java - Spring 数据JPA : Having trouble combining native query with parameter

Spring Boot Autowiring 具有多个实现的接口(interface)

java - 使用 Spring Boot 在 Angular 中成功调用 OPTIONS 后,未调用 GET 请求

java - 如何返回 Spring Boot 中模型中不存在的字段?

java - Spring数据命名查询选择两列相等的实体

java - JPackaged JavaFX + Spring boot 不启动

java - 将 Spring Boot 应用程序作为 jar 执行会给出 "no main manifest attribute"

java - spring mvc Junit 使用mockito作为post方法

java - 类型不匹配绑定(bind)错误的自定义错误消息

java - Spring 3 SimpleMappingExceptionResolver warnLogCategory log4j