添加README.md说明
This commit is contained in:
parent
d7ab8efa32
commit
6abe852338
130
README.md
Normal file
130
README.md
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
# 统一配置模块
|
||||||
|
|
||||||
|
## 内容介绍
|
||||||
|
|
||||||
|
- [统一配置模块](#统一配置模块)
|
||||||
|
- [内容介绍](#内容介绍)
|
||||||
|
- [关于](#关于)
|
||||||
|
- [Getting Started](#getting-started)
|
||||||
|
- [预需要](#预需要)
|
||||||
|
- [使用例子](#使用例子)
|
||||||
|
- [get方法](#get方法)
|
||||||
|
- [set方法](#set方法)
|
||||||
|
- [createKeys方法](#createkeys方法)
|
||||||
|
- [remove方法](#remove方法)
|
||||||
|
- [非默认group.dataId方法](#非默认groupdataid方法)
|
||||||
|
- [Usage](#usage)
|
||||||
|
|
||||||
|
## 关于
|
||||||
|
|
||||||
|
* 由于历史项目配置混乱, 循环去mysql表查询配置不合理.
|
||||||
|
* 重写一个基于nacos配置模块
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
### 预需要
|
||||||
|
|
||||||
|
```
|
||||||
|
安装nacos. 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方法
|
||||||
|
```java
|
||||||
|
Config.UseConfig((cnf) -> {
|
||||||
|
/**
|
||||||
|
* nacos config 默认 group=yuandian dataId=dataflow
|
||||||
|
* key1:
|
||||||
|
* key2:
|
||||||
|
* value
|
||||||
|
*/
|
||||||
|
log.info("{}",cnf.get("key1", "key2")); //value
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
#### set方法
|
||||||
|
```java
|
||||||
|
Config.UseConfig((cnf) -> {
|
||||||
|
cnf.seek("key1", "key2").set("do_set");
|
||||||
|
try {
|
||||||
|
cnf.update(); // 每个写操作都需要执行 update()
|
||||||
|
} catch (NacosException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* nacos config 默认 group=yuandian dataId=dataflow
|
||||||
|
* key1:
|
||||||
|
* key2:
|
||||||
|
* do_set
|
||||||
|
*/
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
#### createKeys方法
|
||||||
|
```java
|
||||||
|
Config.UseConfig((cnf) -> {
|
||||||
|
/**
|
||||||
|
* nacos config 默认 group=yuandian dataId=dataflow
|
||||||
|
* create_keys: do_set
|
||||||
|
*/
|
||||||
|
cnf.seek("create_keys").set("do_set");
|
||||||
|
try {
|
||||||
|
cnf.update(); // 每个写操作都需要执行 update()
|
||||||
|
} catch (NacosException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
#### remove方法
|
||||||
|
```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.
|
|
@ -6,7 +6,6 @@
|
||||||
*/
|
*/
|
||||||
package com.yuandian.common;
|
package com.yuandian.common;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -15,12 +14,15 @@ import java.util.concurrent.Executor;
|
||||||
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.Lock;
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import org.yaml.snakeyaml.Yaml;
|
import org.yaml.snakeyaml.Yaml;
|
||||||
|
|
||||||
import com.alibaba.nacos.api.NacosFactory;
|
import com.alibaba.nacos.api.NacosFactory;
|
||||||
import com.alibaba.nacos.api.PropertyKeyConst;
|
import com.alibaba.nacos.api.PropertyKeyConst;
|
||||||
import com.alibaba.nacos.api.config.ConfigService;
|
import com.alibaba.nacos.api.config.ConfigService;
|
||||||
import com.alibaba.nacos.api.config.listener.Listener;
|
import com.alibaba.nacos.api.config.listener.Listener;
|
||||||
import com.alibaba.nacos.api.exception.NacosException;
|
import com.alibaba.nacos.api.exception.NacosException;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
|
@ -1,30 +1,93 @@
|
||||||
package com.yuandian.common;
|
package com.yuandian.common;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
|
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
|
||||||
import org.junit.jupiter.api.Order;
|
import org.junit.jupiter.api.Order;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.TestMethodOrder;
|
import org.junit.jupiter.api.TestMethodOrder;
|
||||||
|
|
||||||
import com.alibaba.nacos.api.exception.NacosException;
|
import com.alibaba.nacos.api.exception.NacosException;
|
||||||
import com.yuandian.common.Config;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@TestMethodOrder(OrderAnnotation.class)
|
@TestMethodOrder(OrderAnnotation.class)
|
||||||
public class ConfigTest {
|
public class ConfigTest {
|
||||||
|
|
||||||
|
|
||||||
|
@BeforeAll
|
||||||
|
static void beforeClass() {
|
||||||
|
Config.ENV_TEST = "-test";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(1)
|
||||||
|
void testConfigGet() throws Exception {
|
||||||
|
Config.UseConfig((cnf) -> {
|
||||||
|
/**
|
||||||
|
* nacos config 默认 group=yuandian dataId=dataflow
|
||||||
|
* key1:
|
||||||
|
* key2:
|
||||||
|
* path_value
|
||||||
|
*/
|
||||||
|
log.info("{}",cnf.get("key1", "key2"));
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(1)
|
||||||
|
void testConfigSet() throws Exception {
|
||||||
|
Config.UseConfig((cnf) -> {
|
||||||
|
/**
|
||||||
|
* nacos config 默认 group=yuandian dataId=dataflow
|
||||||
|
* key1:
|
||||||
|
* key2:
|
||||||
|
* path_value
|
||||||
|
*/
|
||||||
|
cnf.seek("key1", "key2").set("do_set");
|
||||||
|
try {
|
||||||
|
cnf.update(); // 每个写操作都需要执行 update()
|
||||||
|
} catch (NacosException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Order(1)
|
||||||
|
void testConfigCreateKeys() throws Exception {
|
||||||
|
Config.UseConfig((cnf) -> {
|
||||||
|
/**
|
||||||
|
* nacos config 默认 group=yuandian dataId=dataflow
|
||||||
|
* create_keys: do_set
|
||||||
|
*/
|
||||||
|
cnf.seek("create_keys").set("do_set");
|
||||||
|
try {
|
||||||
|
cnf.update(); // 每个写操作都需要执行 update()
|
||||||
|
} catch (NacosException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 测试配置基础用法
|
* 测试配置基础用法
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
@Order(1)
|
@Order(2)
|
||||||
void testUseConfig() throws Exception {
|
void testUseConfig() throws Exception {
|
||||||
Config.ENV_TEST = "-test";
|
|
||||||
Config.UseConfig((cnf) -> {
|
Config.UseConfig((cnf) -> {
|
||||||
log.info("{}",cnf.data);
|
log.info("{}",cnf.data);
|
||||||
|
|
||||||
Assertions.assertEquals(cnf.get("key1", "key2"), "key_path");
|
Assertions.assertEquals(cnf.get("key1", "key2"), "do_set");
|
||||||
Instant now = Instant.now();
|
Instant now = Instant.now();
|
||||||
cnf.data.put("use_config", now.toString());
|
cnf.data.put("use_config", now.toString());
|
||||||
|
|
||||||
|
@ -42,7 +105,7 @@ public class ConfigTest {
|
||||||
@Test
|
@Test
|
||||||
@Order(1)
|
@Order(1)
|
||||||
void testUseConfigUpdate() throws Exception {
|
void testUseConfigUpdate() throws Exception {
|
||||||
Config.ENV_TEST = "-test";
|
|
||||||
Config.UseConfig((cnf) -> {
|
Config.UseConfig((cnf) -> {
|
||||||
|
|
||||||
cnf.seek("create1","create2", "create3").createKeys().set("create_for_remove");;
|
cnf.seek("create1","create2", "create3").createKeys().set("create_for_remove");;
|
||||||
|
@ -59,7 +122,7 @@ public class ConfigTest {
|
||||||
@Test
|
@Test
|
||||||
@Order(2)
|
@Order(2)
|
||||||
void testRemove() throws Exception {
|
void testRemove() throws Exception {
|
||||||
Config.ENV_TEST = "-test";
|
|
||||||
Config.UseConfig((cnf) -> {
|
Config.UseConfig((cnf) -> {
|
||||||
cnf.remove("create1", "create2");
|
cnf.remove("create1", "create2");
|
||||||
try {
|
try {
|
||||||
|
@ -79,7 +142,7 @@ public class ConfigTest {
|
||||||
@Test
|
@Test
|
||||||
@Order(3)
|
@Order(3)
|
||||||
void testCreateKeys() throws Exception {
|
void testCreateKeys() throws Exception {
|
||||||
Config.ENV_TEST = "-test";
|
|
||||||
|
|
||||||
Config.UseConfig((cnf) -> {
|
Config.UseConfig((cnf) -> {
|
||||||
log.info("{}",cnf.data);
|
log.info("{}",cnf.data);
|
||||||
|
@ -96,7 +159,7 @@ public class ConfigTest {
|
||||||
@Test
|
@Test
|
||||||
@Order(1)
|
@Order(1)
|
||||||
void testUpdate() throws Exception {
|
void testUpdate() throws Exception {
|
||||||
Config.ENV_TEST = "-test";
|
|
||||||
Config.UseConfig((cnf) -> {
|
Config.UseConfig((cnf) -> {
|
||||||
Instant now = Instant.now();
|
Instant now = Instant.now();
|
||||||
cnf.data.put("use_config", now.toString());
|
cnf.data.put("use_config", now.toString());
|
||||||
|
@ -111,7 +174,7 @@ public class ConfigTest {
|
||||||
@Test
|
@Test
|
||||||
@Order(1)
|
@Order(1)
|
||||||
void testLabelConfig() throws Exception {
|
void testLabelConfig() throws Exception {
|
||||||
Config.ENV_TEST = "-test";
|
|
||||||
Config.UseConfig("org.fortest", (cnf)->{
|
Config.UseConfig("org.fortest", (cnf)->{
|
||||||
log.info("{}", cnf.get("test"));
|
log.info("{}", cnf.get("test"));
|
||||||
Assertions.assertEquals(cnf.get("test"), "groupAndDataId");
|
Assertions.assertEquals(cnf.get("test"), "groupAndDataId");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user