# 统一配置模块 ## 内容介绍 - [统一配置模块](#统一配置模块) - [内容介绍](#内容介绍) - [关于](#关于) - [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方法) - [开发者](#开发者) ## 关于 * 由于历史项目配置混乱, 循环去mysql表查询配置不合理. * 重写一个基于nacos配置模块 ## Getting Started ### 预需要 ``` 安装nacos. 配置好group dataId ``` java项目resources文件夹里 application.properties 里配置 ``` yuandian.dataflow.config.nacos.server.addr=config.yuandian.local:8848 ``` 在pom.xml文件里添加依赖 ```pom com.yuandian.common config ${具体版本} ``` ### 使用例子 #### 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; }); ``` ## 开发者 需要在settings.xml ```xml yuandian-nexus ${帐号} ${密码} ``` 设置好公司nexus域名 ```txt http://mvn.yuandian.com/repository/maven-releases http://mvn.yuandian.com/repository/maven-snapshots 如: 192.168.1.113 mvn.yuandian.com ```