首页 > 解决方案 > Spring Boot:找不到注入的@Repository 类

问题描述

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

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

另一方面,我在 package 上有一个存储库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);
    }
}

编辑2:

我刚刚在春季日志中意识到存在一些与以下相关的问题DocumentDAO

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

标签: spring-boot

解决方案


尝试添加以下内容:

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

推荐阅读