一尘不染

如何使用Spring Boot从不同的软件包自动连接存储库接口?

spring-boot

我是Spring Boot的新手,并且想自动连接来自Rest
Controller中不同软件包的存储库。看来,当我将接口和实现放在不同的程序包中时,实际的控制器似乎自动接线失败了。

由以下原因引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有找到类型为[com.acme.repository.RawDataRepository]的合格Bean作为依赖项:

控制器:

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注释,但这没有解决方案。任何想法我想念的吗?每当我将接口放入控制器所在的程序包中时,一切都会顺利进行。

在此处输入图片说明


阅读 298

收藏
2020-05-30

共1个答案

一尘不染

如果您@Repositories在不同的包中包含Spring Data
,则必须显式@EnableJpaRepositories(或使用自己的风格替换“
Jpa”)。Boot从包含的包中获取默认值,@EnableAutoConfiguration因此也可以仅移动该类。

2020-05-30