javascript
Spring Boot——[JPA 无法注入 JpaRepository 子接口问题]解决方案
問題描述
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2020-01-23 17:44:38.171 ERROR 27300 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START ***************************Description:Field jobinfodao in club.zstuca.service.impl.JobInfoServiceImpl required a bean of type 'club.zstuca.dao.JobInfoDao' that could not be found.The injection point has the following annotations:- @org.springframework.beans.factory.annotation.Autowired(required=true)Action:Consider defining a bean of type 'club.zstuca.dao.JobInfoDao' in your configuration.Process finished with exit code 0其他類似:
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
?
問題分析
由于SpringBoot默認掃描SpringBoot 入口類所在的包及其子包中,所以沒有掃描到其他包(兄弟包、父包)的JpaRepository 子接口。
解決方案
方案一
把 @SpringBootApplication 注解的 SpringBoot 入口類移到上層 root 包中,使?JpaRepository 子接口位于 root 包及其子包中。
方案二
在 SpringBoot?入口類上添加
?(1) @ComponentScan(basePackages = "xxx.xxx.xxx"):掃描 @Controller、@Service 注解;(或者 @Component)
?(2) @EnableJpaRepositories(basePackages = "xxx.xxx.xxx"):掃描 @Repository 注解;
?(3) @EntityScan(basePackages =?"xxx.xxx.xxx"):掃描 @Entity 注解;
參考文章
https://blog.csdn.net/guokexiaohao/article/details/79741023
https://stackoverflow.com/questions/40384056/consider-defining-a-bean-of-type-package-in-your-configuration-spring-boot
https://blog.csdn.net/qq_38061755/article/details/80724970
https://blog.csdn.net/u014745069/article/details/78801405
總結
以上是生活随笔為你收集整理的Spring Boot——[JPA 无法注入 JpaRepository 子接口问题]解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA——基于HttpComponen
- 下一篇: Vue——Windows 10下Vue项