为什么我的 Spring 数据存储库在移动到 Spring 启动应用程序的另一个包中时找不到?

Why are my Spring Data repositories not found if moved into another package of a Spring Boot application?

我根据这些有用的 spring 示例(导入入门内容)在 Eclipse 中创建了一个新项目。它被称为"gs-accessing-data-rest-complete"

可以找到参考和完整代码:spring-guides/gs-accessing-data-rest

当保持示例不变时,除了使用 WAR 而不是 JAR 包装外,一切正常。调用 $ curl http://localhost:8080/ 时,我将公开可用资源。

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

但是当将 PersonRepository 移动到另一个包时,例如myRepos 通过 Eclipse 的 Refactor-->Move 命令,无法再访问资源。

curl 的响应是:

$ curl http://localhost:8080/
{
  "_links" : {
    "profile" : {
      "href" : "http://localhost:8080/alps"
    }
  }
}

据我了解,Spring 会自动扫描存储库。因为主要的class使用了@SpringBootApplication注解,所以应该都是spring自己找的。

我错过了什么?我是否必须添加一些特殊的 XML 配置文件或在某处添加另一个配置 Class?还是我必须更新 application.properties 才能做某事?

也许有人有一些有用的经验,她或他可能会与我分享。谢谢。

尝试通过在您的配置中使用此注释来指定扫描存储库时要使用的基础包 class:@EnableJpaRepositories(basePackages = "your.base.repository.package")