【发布时间】:2016-09-02 17:59:36
【问题描述】:
我有一个 Spring Boot 父项目,我将其用作特定于客户的扩展项目的依赖项。最初,为了确保其他一切正常工作,我将客户项目的基础包设置为与父项目相同,并且一切都按预期工作。但是,将 Application 类添加到子包后,我开始收到有关缺少 bean 和组件的异常。
例如,父项目具有基础包 com.example.parent,客户项目具有基础包 com.example.parent.customerA。起初,没有一个父 bean 被拾取,所以我添加了@ComponentScan("com.example.parent")。然后我得到一个关于缺少存储库 bean 的异常,所以我添加了@EnableJpaRepositories("com.example.parent")。然后我得到一个关于缺少实体的异常,所以我添加了@EntityScan("com.example.parent"),现在它的运行就像客户项目与父项目具有相同的包时一样。
有没有更简洁的方法来加载所有父项目的 bean 和组件?我宁愿有一种方法来配置客户项目,以便加载父项目中的所有内容,就好像客户项目具有相同的基础包。我担心如果我必须为 jpa 存储库和实体添加这些特定的注释,我可能不会用将来可能添加的某种其他 Spring 对象来覆盖我的所有基础。
【问题讨论】:
-
@ComponentScan(basePackages = {"com.example.parent"})应该扫描此包及其子包中的所有组件(控制器、存储库、服务)。你可以发布你的配置类 -
它没有获取 repos 和实体
-
请发布您的配置类。请粘贴我为组件扫描编写的代码。实体用于在数据库中持久化,它们的扫描应该在 hibernate 或 JPA 配置类中设置
标签: java spring spring-mvc spring-boot spring-data-jpa