添加 exists setWithCreate 方法. 添加更多README.md例子介绍
This commit is contained in:
parent
c0d72db1f0
commit
91bf185f75
67
README.md
67
README.md
|
@ -8,10 +8,12 @@
|
||||||
- [Getting Started](#getting-started)
|
- [Getting Started](#getting-started)
|
||||||
- [预需要](#预需要)
|
- [预需要](#预需要)
|
||||||
- [使用例子](#使用例子)
|
- [使用例子](#使用例子)
|
||||||
- [get方法](#get方法)
|
- [get方法 获取keys的值. keys必须存在, 否则异常](#get方法-获取keys的值-keys必须存在-否则异常)
|
||||||
- [set方法](#set方法)
|
- [set方法 赋值. keys必须存在, 否则异常](#set方法-赋值-keys必须存在-否则异常)
|
||||||
- [createKeys方法](#createkeys方法)
|
- [setWithCreate方法 赋值. 如果key不存在就创建](#setwithcreate方法-赋值-如果key不存在就创建)
|
||||||
- [remove方法](#remove方法)
|
- [exists方法 判断keys 是否存在](#exists方法-判断keys-是否存在)
|
||||||
|
- [createKeys方法 创建keys. 也可以使用 setWithCreate](#createkeys方法-创建keys-也可以使用-setwithcreate)
|
||||||
|
- [remove方法. 删除key. 和map删除原理一样](#remove方法-删除key-和map删除原理一样)
|
||||||
- [非默认group.dataId方法](#非默认groupdataid方法)
|
- [非默认group.dataId方法](#非默认groupdataid方法)
|
||||||
- [Usage](#usage)
|
- [Usage](#usage)
|
||||||
|
|
||||||
|
@ -44,7 +46,7 @@ yuandian.dataflow.config.nacos.server.addr=config.yuandian.local:8848
|
||||||
|
|
||||||
### 使用例子
|
### 使用例子
|
||||||
|
|
||||||
#### get方法
|
#### get方法 获取keys的值. keys必须存在, 否则异常
|
||||||
```java
|
```java
|
||||||
Config.UseConfig((cnf) -> {
|
Config.UseConfig((cnf) -> {
|
||||||
/**
|
/**
|
||||||
|
@ -57,11 +59,13 @@ Config.UseConfig((cnf) -> {
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### set方法
|
#### set方法 赋值. keys必须存在, 否则异常
|
||||||
```java
|
```java
|
||||||
Config.UseConfig((cnf) -> {
|
Config.UseConfig((cnf) -> {
|
||||||
cnf.seek("key1", "key2").set("do_set");
|
cnf.seek("key1", "key2").set("do_set"); // seek先定位keys
|
||||||
try {
|
try {
|
||||||
cnf.update(); // 每个写操作都需要执行 update()
|
cnf.update(); // 每个写操作都需要执行 update()
|
||||||
} catch (NacosException e) {
|
} catch (NacosException e) {
|
||||||
|
@ -73,19 +77,60 @@ Config.UseConfig((cnf) -> {
|
||||||
* key2:
|
* key2:
|
||||||
* do_set
|
* do_set
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
cnf.seek("key1", "key2").set("do_set"); // seek先定位keys
|
||||||
|
try {
|
||||||
|
cnf.update(); // 每个写操作都需要执行 update()
|
||||||
|
} catch (NacosException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
return null;
|
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;
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
#### createKeys方法
|
#### 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
|
```java
|
||||||
Config.UseConfig((cnf) -> {
|
Config.UseConfig((cnf) -> {
|
||||||
/**
|
/**
|
||||||
* nacos config 默认 group=yuandian dataId=dataflow
|
* nacos config 默认 group=yuandian dataId=dataflow
|
||||||
* create_keys: do_set
|
* create_keys: do_set
|
||||||
*/
|
*/
|
||||||
cnf.seek("create_keys").set("do_set");
|
cnf.seek("create_keys").createKeys().set("do_set");
|
||||||
try {
|
try {
|
||||||
cnf.update(); // 每个写操作都需要执行 update()
|
cnf.update(); // 每个写操作都需要执行 update()
|
||||||
} catch (NacosException e) {
|
} catch (NacosException e) {
|
||||||
|
@ -95,7 +140,7 @@ Config.UseConfig((cnf) -> {
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
#### remove方法
|
#### remove方法. 删除key. 和map删除原理一样
|
||||||
```java
|
```java
|
||||||
Config.UseConfig((cnf) -> {
|
Config.UseConfig((cnf) -> {
|
||||||
cnf.remove("create1", "create2");
|
cnf.remove("create1", "create2");
|
||||||
|
@ -126,6 +171,8 @@ Config.UseConfig("org.fortest", (cnf)->{
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Add notes about how to use the system.
|
Add notes about how to use the system.
|
||||||
|
|
|
@ -143,6 +143,22 @@ public class Config {
|
||||||
return cur.get(keys[keys.length - 1]);
|
return cur.get(keys[keys.length - 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断 keys 是否存在
|
||||||
|
*
|
||||||
|
* @param keys 获取的key值
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean exists(String... keys) {
|
||||||
|
var cur = data;
|
||||||
|
for (var i = 0; i < keys.length - 1; i++) {
|
||||||
|
var key = keys[i];
|
||||||
|
cur = (Map<String, Object>) cur.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return cur.get(keys[keys.length-1]) != null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* 用于定位keys的路径后的操作. 创建keys后赋值. 如果存在keys, 可以直接赋值, 不存在则直接报错
|
* 用于定位keys的路径后的操作. 创建keys后赋值. 如果存在keys, 可以直接赋值, 不存在则直接报错
|
||||||
|
@ -195,6 +211,26 @@ public class Config {
|
||||||
}
|
}
|
||||||
cur.put(keys[keys.length - 1], value);
|
cur.put(keys[keys.length - 1], value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定位后赋值, 如果key不存在就创建
|
||||||
|
*
|
||||||
|
* @param value 赋值
|
||||||
|
*/
|
||||||
|
public void setWithCreate(Object value) {
|
||||||
|
var cur = config.data;
|
||||||
|
for (var i = 0; i < keys.length - 1; i++) {
|
||||||
|
var key = keys[i];
|
||||||
|
var curValue = cur.get(key);
|
||||||
|
if(curValue == null) {
|
||||||
|
curValue = new LinkedHashMap<>();
|
||||||
|
cur.put(key, curValue);
|
||||||
|
}
|
||||||
|
cur = (Map<String, Object>)curValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur.put(keys[keys.length - 1], value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.yuandian.common;
|
package com.yuandian.common;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
|
@ -171,6 +173,8 @@ public class ConfigTest {
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Order(1)
|
@Order(1)
|
||||||
void testLabelConfig() throws Exception {
|
void testLabelConfig() throws Exception {
|
||||||
|
@ -181,4 +185,73 @@ public class ConfigTest {
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(1)
|
||||||
|
void testSetListValues() throws Exception {
|
||||||
|
|
||||||
|
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;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(1)
|
||||||
|
void testMapData() throws Exception {
|
||||||
|
|
||||||
|
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;
|
||||||
|
});
|
||||||
|
|
||||||
|
Config.UseConfig((cnf) -> {
|
||||||
|
log.info("{}", cnf.data); // Map<String, Object> data
|
||||||
|
var key2 = (Map<String, Object>) (cnf.data.get("listKeys1"));
|
||||||
|
((int[])key2.get("listKeys2"))[1] = 10; // 数组 1 2 3 的2为 10
|
||||||
|
try {
|
||||||
|
log.info("{}",cnf.update());
|
||||||
|
} catch (NacosException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(2)
|
||||||
|
void testExists() throws Exception {
|
||||||
|
Config.UseConfig((cnf) -> {
|
||||||
|
log.info("{}", cnf.exists("listKeys1"));
|
||||||
|
log.info("{}", cnf.exists("listKeys1", "listKeys2"));
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user