[TOC]
自己封装jar包时如何初始化JpaRepository 一、基本使用 当我们自己需要将部分业务代码封装成jar包时,如果不加以额外的配置,该包内的JpaEntity与JpaRepository是不会被jpa加载的。
需要我们手动的加入以下两个注解。
1、@EntityScan
该注解的作用就是标识扫描哪些包下面的Entity
2、@EnableJpaRepositories
该注解的作用就是标识扫描哪些包下面的Repository
二、拓展 当我们需要增加一个配置项来标识是否启用jpa时,我们可以通过springboot的 @ConditionalOnProperty 注解来达成目的。
如
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 /** * 是否扫描jpa的实体 * * @author xia17 * @date 2022/4/13 */ @ConditionalOnProperty( prefix = "xia17fast.dynamic-datasource", name = {"jpa-enabled"}, havingValue = "true" ) @ConditionalOnClass(JpaRepositoryFactory.class) @EnableJpaRepositories(basePackages = "top.xia17.plugins.fast.dynamic.datasource.dao") @EntityScan(basePackages = "top.xia17.plugins.fast.dynamic.datasource.dao") public class DynamicDatasourceJpaConfig { }
然后再springboot的配置入口使用 @Import导入该配置即可。
如
1 2 3 4 5 @Configuration @RequiredArgsConstructor @EnableConfigurationProperties(DynamicDatasourceProperties.class) @Import(DynamicDatasourceJpaConfig.class) public class Xia17DynamicDatasourceAutoconfiguration {