And*_*sky 5 spring spring-data-jpa spring-boot spring-java-config
我一直在使用@EnableJpaRepositories并且我对定义特定类而不是包的机会感兴趣。这背后的原因是我正在使用多模块项目,并且目前有一个核心模块,其中包含单独包中的所有存储库定义:
core/repository/ - Here all repository definitions are stored
Run Code Online (Sandbox Code Playgroud)
在依赖于核心模块的其他模块中,我使用以下定义来获取存储库:
@EnableJpaRepositories(basePackages ="core.repository")
Run Code Online (Sandbox Code Playgroud)
显然,使用这意味着获取core/repository包下所有存储库的定义。但是,在某些包中,我只需要一些存储库,而不是全部。现在,我已将每个存储库定义移动到一个单独的包中,例如:
core/repository/user
Run Code Online (Sandbox Code Playgroud)
不过我很感兴趣 - 是否真的可以定义具体的存储库类,而不是包,类似这样:
@EnableJpaRepositories(baseClasses ="core.repository.UserRepository")
Run Code Online (Sandbox Code Playgroud)
您可以使用 includeFilters / exceptFilters 参数自定义加载的存储库。
\n\n例如,您可以在EnableJpaRepositories配置中定义过滤器:
@EnableJpaRepositories(basePackages = "core.repository", includeFilters = @ComponentScan.Filter(MyModuleJpaRepo.Class))\nRun Code Online (Sandbox Code Playgroud)\n\n然后用适当的注释标记每个模块存储库:
\n\n@MyModuleJpaRepo\npublic interface TestRepository extends JpaRepository<Test, Long> { \xe2\x80\xa6 }\nRun Code Online (Sandbox Code Playgroud)\n\n在这里您可以找到 spring-data 作者的示例:\n /sf/answers/1592083181/
\n| 归档时间: |
|
| 查看次数: |
3789 次 |
| 最近记录: |