simple-base-config
# 简介
可作用于系统基础配置参数
模块
simple-base-config-api 参数配置服务-客户端:
若只引入客户端需要启动服务端并(配置服务端调用地址 或 开启服务自动发现)
主要功能:启动自动初始化配置值到数据库中、可选覆盖数据
simple-base-config-service 参数配置服务-服务端:
可直接引入依赖,作为客户端也作为服务端
主要功能:数据表结构将自动创建、开放基础调用接口
1
2
3
4
5
6
2
3
4
5
6
# 拆分客户端及服务端使用
# 启动服务端
下载代码
git clone https://github.com/ok1996/ok-system-simple.git
1
增加启动BaseConfigServiceApplication的vm配置--无需连接Nacos
-Dspring.datasource.dynamic.datasource.master.url=jdbc:mysql://127.0.0.1:3306/simple_demo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-Dspring.datasource.dynamic.datasource.master.username=
-Dspring.datasource.dynamic.datasource.master.password=
1
2
3
2
3
若要连接Nacos则再增加配置
-Dspring.cloud.nacos.server-addr=http://127.0.0.1:8848
-Dspring.cloud.nacos.username=
-Dspring.cloud.nacos.password=
-Dspring.cloud.nacos.discovery.enabled=true
-Dspring.cloud.nacos.discovery.namespace=
-Dspring.cloud.nacos.config.enabled=true
-Dspring.cloud.nacos.config.namespace=
1
2
3
4
5
6
7
2
3
4
5
6
7
# 引入客户端
# 引入依赖-方式1
所需工程使用仅需引入客户端依赖
<dependencies>
<dependency>
<groupId>cn.iosd</groupId>
<artifactId>simple-base-config-api</artifactId>
<version>Version</version>
</dependency>
</dependencies>
1
2
3
4
5
6
7
2
3
4
5
6
7
# 引入依赖-方式2
所需工程使用,引入服务端依赖,并通过配置文件关闭服务端功能,仅使用客户端功能
便于灵活切换启用本身作为服务端
<dependencies>
<dependency>
<groupId>cn.iosd</groupId>
<artifactId>simple-base-config-service</artifactId>
<version>Version</version>
</dependency>
</dependencies>
1
2
3
4
5
6
7
2
3
4
5
6
7
配置项-关闭服务端功能
simple:
scan:
## 关闭service依赖中service服务端,仅使用service依赖中的api客户端
service:
enabled: false
1
2
3
4
5
2
3
4
5
# 配置项
若要连接Nacos则再增加vm配置
-Dspring.cloud.nacos.server-addr=http://127.0.0.1:8848
-Dspring.cloud.nacos.username=
-Dspring.cloud.nacos.password=
-Dspring.cloud.nacos.discovery.enabled=true
-Dspring.cloud.nacos.discovery.namespace=
-Dspring.cloud.nacos.config.enabled=true
-Dspring.cloud.nacos.config.namespace=
1
2
3
4
5
6
7
2
3
4
5
6
7
情况1:若工程 或 服务端 没有启用服务发现,则需要在客户端中配置调用服务端的调用地址
simple:
feign:
base:
## simple-base-config-api
config:
# 未开启注册中心需要指定调用地址
url: http://localhost:9010
1
2
3
4
5
6
7
2
3
4
5
6
7
情况2:若工程 和 服务端 均启用服务发现,则在客户端中配置调用服务端的调用地址为空即可
simple:
feign:
base:
config:
# 未开启注册中心需要指定调用地址
url:
1
2
3
4
5
6
2
3
4
5
6
# 存储数据
启动自动初始化数据
示例:
/**
* 初始化数据
* <p>
* 创建初始化对象,提供一些常量和方法实现
*
* @author ok1996
*/
@Component
public class DemoTestConfigInit {
/**
* 一班参数key
*/
public static final String STUDENT_KEY_ONE = "student-key-test-one";
/**
* 二班参数key
*/
public static final String STUDENT_KEY_TWO = "student-key-test-two";
@Bean
public ConfigInit studentTestOneInit() {
ConfigInit configInit = new ConfigInit(STUDENT_KEY_ONE, "一班同学列表", false, List.of("模块分类1", "分类1-1"));
configInit.setCodeValues(List.of(
new CodeValue<Boolean>().setCode(ConfigUtils.OPEN_SIMULATION_CODE).setValue(true),
new CodeValue<ClassmateVo>().setCode(ConfigUtils.CONTENT_DATA_CODE)
.setValue(ClassmateVo.builder().personList(List.of(
ClassmateVo.Person.builder().age(12).name("小库").build(),
ClassmateVo.Person.builder().age(14).name("小明").build()))
.build())
));
return configInit;
}
@Bean
public ConfigInit studentTestTwoInit() {
ConfigInit configInit = new ConfigInit(STUDENT_KEY_TWO, "二班同学列表", false, List.of("模块分类1", "分类1-2"));
configInit.setCodeValues(List.of(
new CodeValue<Boolean>().setCode(ConfigUtils.OPEN_SIMULATION_CODE).setValue(true),
new CodeValue<ClassmateVo>().setCode(ConfigUtils.CONTENT_DATA_CODE)
.setValue(ClassmateVo.builder().personList(List.of(
ClassmateVo.Person.builder().age(14).name("小雪").build(),
ClassmateVo.Person.builder().age(15).name("小楚").build()))
.build())
));
return configInit;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 获取数据
示例-获取key-test数据:
@Autowired(required = false)
private IBaseConfigService configService;
/**
* 获取同学列表信息
*
* @return 返回同学列表信息的ClassmateVo对象
*/
public ClassmateVo classmateList() {
if (configService == null) {
return null;
}
// 从基础参数服务中获取基础参数码值对象的列表
List<CodeValue<?>> simulation = configService.selectValueListByKey(DemoTestConfigInit.STUDENT_KEY_ONE);
// 判断是否开启模拟数据
if (!ConfigUtils.findFirstByCode(simulation, ConfigUtils.OPEN_SIMULATION_CODE, false)) {
log.info("获取其他来源途径的数据");
return null;
}
// 获取存储的模拟数据,并将其转换为对应的实体类
return ConfigUtils.findFirstByCode(simulation, ConfigUtils.CONTENT_DATA_CODE, ClassmateVo.class,null);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 工具类 ConfigUtils
各方法查看源码均提供注释说明
# 融合客户端和服务端使用
直接引入service依赖即包含客户端和服务端功能
# 引入依赖
<dependencies>
<dependency>
<groupId>cn.iosd</groupId>
<artifactId>simple-base-config-service</artifactId>
<version>Version</version>
</dependency>
</dependencies>
1
2
3
4
5
6
7
2
3
4
5
6
7
# 查看服务端接口
例:可访问接口地址查看 http://127.0.0.1:9010/doc.html
上次更新: 2024/03/25, 02:28:08