[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 {