\351\205\215\347\275\256\344\270\255\345\277\203.md
... ...
@@ -192,9 +192,9 @@ ConfigUtils.onUpdate("base_log.master", (newValue) -> {
192 192
- `appNameTag`:由应用名称和版本号拼接而成(appName.tag),同时它也是配置项的键名。
193 193
- `consumer`:这是一个回调函数,当配置更新时,它会被触发,接收一个JSON序列化为字符串的新配置值,比如```{"foo":"bar","number":123,"storageType":"1","esURI":"http://192.168.175.198:19200"} ```,注意其中的 ```"storageType":"1"``` 和 ```"esURI":"http://192.168.175.198:19200"``` 就是上面```app.json```配置中的```storageType esURI```作为key以及它们对应的键值内容,其中的```"foo": "bar"``` 是该app的其他配置项,所以多个配置项在同一个app中可以共存。
194 194
195
- 回调函数的参数 `newValue` 包含了该app的所有配置项。即使某些配置项未发生变化,它们也会被包含在内,因为配置是以整体形式更新的。因此,业务代码中应进一步判断配置项的实际值是否真的发生了改变,如下所示:
195
+ 回调函数的参数 `newValue` 包含了该app的所有配置项。即使某些配置项未发生变化,它们也会被包含在内,因为配置是以整体形式更新的。因此,业务代码中应进一步判断配置项的实际值是否真的发生了改变,如下所示,可以下内存中保存当前配置的oldValue,当有更新事件到来时,获取newValue并对比oldValue,如果相等则没有更新,如果不相等才是真正的更新,需要业务做进一步的更新操作。
196 196
```java
197
- if (!newValue.getString("foo").equals(oldValue.getString("foo"))) {
197
+ if (!newValue.getString("storageType").equals(oldValue.getString("storageType"))) {
198 198
// 执行相关操作
199 199
}
200 200
```