小编Nim*_*ian的帖子

使用@ComponentScan时,Spring引导在sibling-package中找不到JpaRepositories,或者在使用@EnableJpaRepositories时无法初始化它们

我有一个由多个模块组成的maven项目.其中三个模块是

  • "project-core"(包含模型类)
  • "project-data"(包含Spring Data JPA存储库)
  • "project-spring"(包含带有REST控制器的主Spring Boot App).

在启动时,我得到以下异常:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.foo.bar.data.OrderRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
Run Code Online (Sandbox Code Playgroud)

我知道Spring Boot Applications默认只查看他们自己和他们的子包bean,但在这种情况下,bean是在兄弟包中.我已经尝试过@ComponentScan({"org.foo.bar.data"})在Application类中添加一个,但无济于事.

使用@EnableJpaRepositories(basePackages = {"org.foo.bar.data"})投掷

Caused by: java.lang.IllegalArgumentException: Not an managed type: class org.foo.bar.core.model.Order
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

目录树(修剪)如下所示:

project
??? project-core
?   ??? src
?       ??? main
?           ??? java
?               ??? org
?                   ??? foo
?                       ??? bar
? …
Run Code Online (Sandbox Code Playgroud)

java spring spring-data-jpa spring-boot

0
推荐指数
1
解决办法
560
查看次数

标签 统计

java ×1

spring ×1

spring-boot ×1

spring-data-jpa ×1