春季启动:找不到要注入的@Repository类

时间:2018-10-04 09:30:48

标签: spring-boot

这是我的Spring Boot应用程序相关代码:

@ComponentScan({"net.gencat.transversal.espaidoc.scheduler", "net.gencat.transversal.espaidoc.backoffice"})
public class SchedulerApplication {//...}

另一方面,我在软件包net.gencat.transversal.espaidoc.backoffice.dao上有一个存储库:

@Repository
public interface DocumentDAO extends CrudRepository<Document, String> {

}

因此,我有一个具有DocumentDAO依赖项的服务:

@Service
public class DocumentServiceBackOffice {

    private DocumentDAO documentDAO;

    public DocumentServiceBackOffice(DocumentDAO documentDAO) {
                this.documentDAO = documentDAO;
    }
}

但是,我收到此消息:

  

NoSuchBeanDefinitionException:没有可用的'net.gencat.transversal.espaidoc.backoffice.dao.DocumentDAO'类型的合格Bean

我也尝试添加@EnableJpaRepositories,但仍然无法正常工作。

有什么想法吗?

编辑

这是我的SpringApplication班:

package net.gencat.transversal.espaidoc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableScheduling;

import net.gencat.transversal.espaidoc.common.config.FrontOfficeProperties;
import net.gencat.transversal.espaidoc.common.config.RedisConfiguration;

@SpringBootApplication(exclude = JmxAutoConfiguration.class)
@EnableConfigurationProperties({
    FrontOfficeProperties.class
})
@Import(RedisConfiguration.class)
@EnableScheduling
// @ComponentScan("net.gencat.transversal.espaidoc")
//@EnableJpaRepositories
public class SchedulerApplication {

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

EDIT2:

我刚刚在Spring日志中意识到与DocumentDAO相关的一些问题:

  

--- [main] .RepositoryConfigurationExtensionSupport:Spring Data JPA-无法安全地标识存储库候选接口net.gencat.transversal.espaidoc.backoffice.dao.DocumentDAO的存储分配。

1 个答案:

答案 0 :(得分:1)

尝试添加以下内容:

@EnableJpaRepositories(basePackages="net.gencat.transversal.espaidoc.backoffice.dao")
public class SchedulerApplication