diff --git a/src/main/java/io/jboot/app/config/JbootConfigManager.java b/src/main/java/io/jboot/app/config/JbootConfigManager.java index 93c555ceab8949e5870f82530c6474bf745e2a1c..6fd5b1c2bc8db2937bf01e8b224ccaf9e43cdff7 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 40d909a48728f260d40e7e08369b35d0a7b53d45..01b9d604643c0039de985afd1294b9c9125dacb1 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) {