SpringBoot JPA 中无法注入 JpaRepository 接口@ComponentScan无效

xiaoxiao2025-04-06  14

今天在开发过程当中出现了下面的错误:

No qualifying bean of type 'xxx.xxx.xxx' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 或: Not a managed type: class xxx.xxx.xxx

主要原因是标注了@SpringBootApplication的类与继承自JpaRepository接口的类在项目中的位置有关,解决方法是:

方案一、把 @SpringBootApplication 注解的 SpringBoot 入口类移到上层 root 包中,使 JpaRepository 子接口位于 root 包及其子包中。 方案二、在 SpringBoot 入口类上添加 (1) @ComponentScan(basePackages = "xxx.xxx.xxx"):扫描 @Controller、@Service 注解; (2) @EnableJpaRepositories(basePackages = "xxx.xxx.xxx"):扫描 @Repository 注解; (3) @EntityScan(basePackages = "xxx.xxx.xxx"):扫描 @Entity 注解;

需要注意的是,方案二中,如果只是使用@ComponentScan注解的话,是无法创建Jpa的Bean的,同理,如果开发过程当中使用到了MongoRepository的话,就需要增加@EnableMongoRepositories注解。

转载请注明原文地址: https://www.6miu.com/read-5027599.html

最新回复(0)