【Nacos】Java代码监听nacos配置变更
监听nacos配置变更
监听配置修改
import cn.hutool.core.util.StrUtil;
import com.alibaba.cloud.nacos.NacosConfigManager;
import com.alibaba.nacos.api.config.ConfigChangeEvent;
import com.alibaba.nacos.api.config.ConfigChangeItem;
import com.alibaba.nacos.client.config.listener.impl.AbstractConfigChangeListener;
import com.deyatech.common.Constants;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
public class NacosConfigListener extends AbstractConfigChangeListener implements InitializingBean {
@Resource
private NacosConfigManager nacosConfigManager;
@Override
public void afterPropertiesSet() throws Exception {
nacosConfigManager.getConfigService().addListener("global.yaml", "DEFAULT_GROUP", this);
}
@Override
public void receiveConfigChange(ConfigChangeEvent event) {
for (ConfigChangeItem changeItem : event.getChangeItems()) {
String value = changeItem.getNewValue();
String key = changeItem.getKey();
if (key.equals("system-upload-prefix.upload") && StrUtil.isNotEmpty(value)) {
Constants.UPLOAD_DEFAULT_PREFIX_URL = value;
System.out.println("Listener UPLOAD_DEFAULT_PREFIX_URL -> " + Constants.UPLOAD_DEFAULT_PREFIX_URL);
}
}
}
}
结果保存对象
@Component
public class Constants {
@Autowired
SystemUploadPrefix systemUploadPrefix;
@PostConstruct
public void loadSystemUploadPrefix() {
if (StrUtil.isNotEmpty(systemUploadPrefix.getUpload())) {
UPLOAD_DEFAULT_PREFIX_URL = systemUploadPrefix.getUpload();
}
System.out.println("Constants UPLOAD_DEFAULT_PREFIX_URL -> " + UPLOAD_DEFAULT_PREFIX_URL);
}
}
配置对象
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
@ConfigurationProperties(prefix = "system-upload-prefix")
@Configuration
@RefreshScope
@Data
public class SystemUploadPrefix {
private String upload;
}
配置
system-upload-prefix:
upload: /upload/

浙公网安备 33010602011771号