Java Spring boot未识别rest存储库
我正在使用SpringDataREST(1.3.5.RELEASE)创建一个简单的rest服务。 但是,当我的应用程序配置位于不同的包级别时,存储库/JPA实体没有被识别/注册 以下是我的示例项目结构:Java Spring boot未识别rest存储库,java,spring,spring-boot,spring-data,spring-data-rest,Java,Spring,Spring Boot,Spring Data,Spring Data Rest,我正在使用SpringDataREST(1.3.5.RELEASE)创建一个简单的rest服务。 但是,当我的应用程序配置位于不同的包级别时,存储库/JPA实体没有被识别/注册 以下是我的示例项目结构: <source.root> - package1 - Application.java - package2 - RepositoryService.java - Model.java -包装1 -Application.java -包装2 -Reposit
<source.root>
- package1
- Application.java
- package2
- RepositoryService.java
- Model.java
-包装1
-Application.java
-包装2
-RepositoryService.java
-Model.java
在这种情况下,RepositoryService不公开任何rest方法
下面对我的项目结构的更改解决了这个问题
<source.root>
- package1
- Application.java
- package2
- RepositoryService.java
- Model.java
-包装1
-Application.java
-包装2
-RepositoryService.java
-Model.java
spring boot应用程序配置必须在顶层出现,以便扫描bean吗?如果
Application.java
是主要的spring boot类,它很可能使用@SpringBootApplication
注释
此批注是复合批注,并且在引擎盖下还包含@ComponentScan
批注
现在组件扫描默认扫描当前包和所有子包。因此,在第一个项目结构中,您从组件扫描中排除了存储库
要解决此问题,您有以下选项:
@SpringBootApplication(scanBasePackages=“package2”)
。这不是类型安全的@SpringBootApplication(scanBasePackageClasses=RepositoryService.class)
。这是比选项1更好的选项,因为它是类型安全的不,应用程序配置不必位于更高的包中。如果您愿意在Application.java上共享注释,我们将能够为您提供更详细的答案。