我查看了Spring(https://spring.io/guides/gs/accessing-mongodb-data-rest/)的MongoDB REST入门指南。当我在不同的包中添加实体时,请Application.java
,比如说
com.project.rest.core.entities.Account.java
并对存储库执行相同的操作
com.project.rest.core.repositories.AccountRepo.java
应用程序在构建之后无法识别localhost:8080下的REST端点。它只是显示
{
"_links": {
"people": {
"href": "http://localhost:8080/people{?page,size,sort}",
"templated": true
},
"profile": {
"href": "http://localhost:8080/profile"
}
}
}
当我将Account.java
和AccountRepo.java
放在Application.java
所在的同一个包中时,它可以正常工作。
那么,如何在应用程序中集成来自不同包的存储库?
致以最诚挚的问候,
添
编辑:我的主要应用程序类如下所示:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
即使添加了@ComponentScan(basePackages =“com.project.rest”),Spring引导也找不到AccountRepository。
存储库具有以下注释:
@RepositoryRestResource(collectionResourceRel = "accounts", path="accounts")
答案 0 :(得分:1)
您需要将Component
和Repositories
置于任何子包下Application.java
。
我们通常建议您将主应用程序类放在其他类之上的根包中。 @EnableAutoConfiguration注释通常放在您的主类上,它隐式地为某些项定义了一个基础“搜索包”。
答案 1 :(得分:0)
Spring Boot应该使用自动配置注释SpringBootApplication
或EnableAutoConfiguration
来处理它。
您还可以通过向主应用程序类添加其他注释来指定注释ComponentScan
扫描。
@ComponentScan(basePackages="com.project")