首页 文章

Spring入门指南MongoDB REST示例

提问于
浏览
0

我查看了Spring的MongoDB REST入门指南(https://spring.io/guides/gs/accessing-mongodb-data-rest/) . 当我在不同的包中添加实体时,那么 Application.java ,比方说

com.project.rest.core.entities.Account.java

并为存储库执行相同操作

com.project.rest.core.repositories.AccountRepo.java

构建后,应用程序无法识别localhost:8080下的REST endpoints . 它只是表明

{
    "_links": {
        "people": {
            "href": "http://localhost:8080/people{?page,size,sort}",
            "templated": true
        },
        "profile": {
            "href": "http://localhost:8080/profile"
        }
    }
}

当我将 Account.javaAccountRepo.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")

2 回答

  • 0

    Spring Boot应该使用自动配置注释 SpringBootApplicationEnableAutoConfiguration 来处理它 .

    您还可以通过向主应用程序类添加其他注释来指定注释 ComponentScan 扫描 .

    @ComponentScan(basePackages="com.project")
    
  • 1

    您需要在任何子包下使用 ComponentRepositories 作为 Application.java .

    来自Spring Docs

    我们通常建议您将主应用程序类放在其他类之上的根包中 . @EnableAutoConfiguration注释通常放在主类上,它隐式地为某些项定义了一个基本的“搜索包” .

相关问题