4.5 KiB
4.5 KiB
统一配置模块
内容介绍
关于
- 由于历史项目配置混乱, 循环去mysql表查询配置不合理.
- 重写一个基于nacos配置模块
Getting Started
预需要
安装nacos. 配置好group dataId
java项目resources文件夹里 application.properties 里配置
yuandian.dataflow.config.nacos.server.addr=config.yuandian.local:8848
在pom.xml文件里添加依赖
<dependency>
<groupId>com.yuandian.common</groupId>
<artifactId>config</artifactId>
<version>${具体版本}</version>
</dependency>
使用例子
get方法 获取keys的值. keys必须存在, 否则异常
Config.UseConfig((cnf) -> {
/**
* nacos config 默认 group=yuandian dataId=dataflow
* key1:
* key2:
* value
*/
log.info("{}",cnf.get("key1", "key2")); //value
return null;
});
set方法 赋值. keys必须存在, 否则异常
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不存在就创建
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 是否存在
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
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删除原理一样
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方法
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.