Spring入门指南MongoDB REST示例

时间:2016-03-13 15:10:34

标签: java spring mongodb rest spring-boot

我查看了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.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 :(得分:1)

您需要将ComponentRepositories置于任何子包下Application.java

来自Spring Docs

  

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

答案 1 :(得分:0)

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

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

@ComponentScan(basePackages="com.project")