179 lines
4.5 KiB
Markdown
179 lines
4.5 KiB
Markdown
# 统一配置模块
|
|
|
|
## 内容介绍
|
|
|
|
- [统一配置模块](#统一配置模块)
|
|
- [内容介绍](#内容介绍)
|
|
- [关于](#关于)
|
|
- [Getting Started](#getting-started)
|
|
- [预需要](#预需要)
|
|
- [使用例子](#使用例子)
|
|
- [get方法 获取keys的值. keys必须存在, 否则异常](#get方法-获取keys的值-keys必须存在-否则异常)
|
|
- [set方法 赋值. keys必须存在, 否则异常](#set方法-赋值-keys必须存在-否则异常)
|
|
- [setWithCreate方法 赋值. 如果key不存在就创建](#setwithcreate方法-赋值-如果key不存在就创建)
|
|
- [exists方法 判断keys 是否存在](#exists方法-判断keys-是否存在)
|
|
- [createKeys方法 创建keys. 也可以使用 setWithCreate](#createkeys方法-创建keys-也可以使用-setwithcreate)
|
|
- [remove方法. 删除key. 和map删除原理一样](#remove方法-删除key-和map删除原理一样)
|
|
- [非默认group.dataId方法](#非默认groupdataid方法)
|
|
- [Usage](#usage)
|
|
|
|
## 关于
|
|
|
|
* 由于历史项目配置混乱, 循环去mysql表查询配置不合理.
|
|
* 重写一个基于nacos配置模块
|
|
|
|
## Getting Started
|
|
|
|
### 预需要
|
|
|
|
```
|
|
安装nacos. 配置好group dataId
|
|
```
|
|
|
|
java项目resources文件夹里 application.properties 里配置
|
|
```
|
|
yuandian.dataflow.config.nacos.server.addr=config.yuandian.local:8848
|
|
```
|
|
|
|
在pom.xml文件里添加依赖
|
|
```pom
|
|
<dependency>
|
|
<groupId>com.yuandian.common</groupId>
|
|
<artifactId>config</artifactId>
|
|
<version>${具体版本}</version>
|
|
</dependency>
|
|
```
|
|
|
|
### 使用例子
|
|
|
|
#### get方法 获取keys的值. keys必须存在, 否则异常
|
|
```java
|
|
Config.UseConfig((cnf) -> {
|
|
/**
|
|
* nacos config 默认 group=yuandian dataId=dataflow
|
|
* key1:
|
|
* key2:
|
|
* value
|
|
*/
|
|
log.info("{}",cnf.get("key1", "key2")); //value
|
|
return null;
|
|
});
|
|
```
|
|
|
|
|
|
|
|
#### set方法 赋值. keys必须存在, 否则异常
|
|
```java
|
|
Config.UseConfig((cnf) -> {
|
|
cnf.seek("key1", "key2").set("do_set"); // seek先定位keys
|
|
try {
|
|
cnf.update(); // 每个写操作都需要执行 update()
|
|
} catch (NacosException e) {
|
|
e.printStackTrace();
|
|
}
|
|
/**
|
|
* nacos config 默认 group=yuandian dataId=dataflow
|
|
* key1:
|
|
* key2:
|
|
* do_set
|
|
*/
|
|
|
|
cnf.seek("key1", "key2").set("do_set"); // seek先定位keys
|
|
try {
|
|
cnf.update(); // 每个写操作都需要执行 update()
|
|
} catch (NacosException e) {
|
|
e.printStackTrace();
|
|
}
|
|
return null;
|
|
});
|
|
```
|
|
|
|
#### setWithCreate方法 赋值. 如果key不存在就创建
|
|
```java
|
|
Config.UseConfig((cnf) -> {
|
|
int[] values = new int[]{1,2,3} ; // 数组配置
|
|
cnf.seek("listKeys1", "listKeys2").setWithCreate( values ); // 如果不存在key创建.
|
|
// listKeys1:
|
|
// listKeys2:
|
|
// - 1
|
|
// - 2
|
|
// - 3
|
|
try {
|
|
log.info("{}",cnf.update());
|
|
} catch (NacosException e) {
|
|
e.printStackTrace();
|
|
}
|
|
return null;
|
|
});
|
|
```
|
|
|
|
#### exists方法 判断keys 是否存在
|
|
```java
|
|
Config.UseConfig((cnf) -> {
|
|
// listKeys1:
|
|
// listKeys2:
|
|
// - 1
|
|
// - 2
|
|
// - 3
|
|
Config.UseConfig((cnf) -> {
|
|
log.info("{}", cnf.exists("listKeys1")); // true
|
|
log.info("{}", cnf.exists("listKeys1", "listKeys2"));// true
|
|
return null;
|
|
});
|
|
});
|
|
```
|
|
|
|
#### createKeys方法 创建keys. 也可以使用 setWithCreate
|
|
```java
|
|
Config.UseConfig((cnf) -> {
|
|
/**
|
|
* nacos config 默认 group=yuandian dataId=dataflow
|
|
* create_keys: do_set
|
|
*/
|
|
cnf.seek("create_keys").createKeys().set("do_set");
|
|
try {
|
|
cnf.update(); // 每个写操作都需要执行 update()
|
|
} catch (NacosException e) {
|
|
e.printStackTrace();
|
|
}
|
|
return null;
|
|
});
|
|
```
|
|
|
|
#### remove方法. 删除key. 和map删除原理一样
|
|
```java
|
|
Config.UseConfig((cnf) -> {
|
|
cnf.remove("create1", "create2");
|
|
try {
|
|
log.info("{}",cnf.update()); // 所有增加删除操作要最后同步到nacos. 都需要update
|
|
} catch (NacosException e) {
|
|
e.printStackTrace();
|
|
}
|
|
cnf.remove("create1");
|
|
try {
|
|
log.info("{}",cnf.update()); // 所有增加删除操作要最后同步到nacos. 都需要update
|
|
} catch (NacosException e) {
|
|
e.printStackTrace();
|
|
}
|
|
return null;
|
|
});
|
|
```
|
|
|
|
#### 非默认group.dataId方法
|
|
```java
|
|
Config.UseConfig("org.fortest", (cnf)->{
|
|
/**
|
|
* nacos config group=org dataId=fortest
|
|
* test: groupAndDataId
|
|
*/
|
|
log.info("{}",cnf.get("test")); // groupAndDataId
|
|
return null;
|
|
});
|
|
```
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
Add notes about how to use the system.
|