77954116c436f7f0c89d2bf016d522439be07406
\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 | ``` |