@EnableJpaRepositories 正在寻找哪个包?

2024-05-07

我正在学习如何构建 JSF 和 Spring 集成的 webapp。我使用java config来配置。问题是@EnableJpaRepositories,我应该在这个注解中放入哪个包?包中包含实体类吗?或者配置类?或者?我可以将我的根包放入其中并让它自行搜索吗?


EnableJpaRepositories - 仅用于存储库,不适用于实体或配置。此注释的主要目标是查找所有存储库。

您可以通过多种方式配置 jpa 存储库(取决于项目中的包结构),

@EnableJpaRepositories-- 在这种情况下,spring 解析所有包以查找存储库。

@EnableJpaRepositories(basePackages="root package")- 与...一样@EnableJpaRepositories

@EnableJpaRepositories(basePackages="path.to.repositories.package")-- 在这种情况下,spring 仅解析 'path.to.repositories.package' 包和子包来查找存储库。

如果你有像这样的包结构com.some.path.repositories or com.some.path.dao你可以@EnableJpaRepositories(basePackages="com.some.path.dao or repositories")

如果你有更复杂的结构,比如com.some.path.domain1.repositories , com.some.path.domain2.repositories .... com.some.path.domainN.repositories你可以使用配置@EnableJpaRepositories(basePackages="com.some.path")或使用多组配置值configuration(下一节),因为您有不同的单独包,您需要找到所有子包的顶级包并将其用作基本包。在许多情况下,要查找所有存储库的最常见的基础包可能与仅使用默认/根包相同@EnableJpaRepositories

或者如果您有几个软件包,则使用多组配置值 @EnableJpaRepositories ({ "com.some.path.domain1.repositories", "com.some.path.domain2.repositories"}) 。在此不需要使用通用根包,但如果您有 10-20-30 个单独的包,可能最好使用通用包。

PS:@EnableJpaRepositories 有 basePackages() 属性的别名。允许更简洁的注释声明,例如: @EnableJpaRepositories("org.my.pkg") 而不是 @EnableJpaRepositories(basePackages="org.my.pkg")。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@EnableJpaRepositories 正在寻找哪个包? 的相关文章

随机推荐