From c74f0cb43c9487f145d5f7684bdd6f438726fddf Mon Sep 17 00:00:00 2001 From: xiaohuayi Date: Mon, 25 Jan 2021 11:55:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BD=BF=E7=94=A8apollo?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=85=8D=E7=BD=AE=E6=97=B6JbootConfigManager?= =?UTF-8?q?=E7=A9=BA=E6=8C=87=E9=92=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/jboot/app/config/JbootConfigManager.java | 7 +++++++ .../app/config/support/apollo/ApolloConfigManager.java | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/jboot/app/config/JbootConfigManager.java b/src/main/java/io/jboot/app/config/JbootConfigManager.java index 93c555ce..6fd5b1c2 100644 --- a/src/main/java/io/jboot/app/config/JbootConfigManager.java +++ b/src/main/java/io/jboot/app/config/JbootConfigManager.java @@ -354,6 +354,13 @@ public class JbootConfigManager { remoteProperties.put(key, value); } + + public void removeRemoteProperties(String key) { + if (remoteProperties != null) { + remoteProperties.remove(key); + } + } + public void setRemoteProperties(Map map) { if (remoteProperties == null) { synchronized (this) { diff --git a/src/main/java/io/jboot/app/config/support/apollo/ApolloConfigManager.java b/src/main/java/io/jboot/app/config/support/apollo/ApolloConfigManager.java index 40d909a4..01b9d604 100644 --- a/src/main/java/io/jboot/app/config/support/apollo/ApolloConfigManager.java +++ b/src/main/java/io/jboot/app/config/support/apollo/ApolloConfigManager.java @@ -17,6 +17,7 @@ package io.jboot.app.config.support.apollo; import com.ctrip.framework.apollo.Config; import com.ctrip.framework.apollo.ConfigService; +import com.ctrip.framework.apollo.enums.PropertyChangeType; import com.ctrip.framework.apollo.model.ConfigChange; import io.jboot.app.config.ConfigUtil; import io.jboot.app.config.JbootConfigManager; @@ -66,12 +67,16 @@ public class ApolloConfigManager { config.addChangeListener(changeEvent -> { for (String key : changeEvent.changedKeys()) { ConfigChange change = changeEvent.getChange(key); - configManager.setRemoteProperty(change.getPropertyName(), change.getNewValue()); - + if (change.getChangeType() == PropertyChangeType.DELETED) { + configManager.removeRemoteProperties(change.getPropertyName()); + } else { + configManager.setRemoteProperty(change.getPropertyName(), change.getNewValue()); + } configManager.notifyChangeListeners(change.getPropertyName(), change.getNewValue(), change.getOldValue()); } }); + } private Config getDefaultConfig(JbootConfigManager configManager) { -- Gitee