本文主要是介绍动态刷新apollo配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
配置apollo的监听器
import com.ctrip.framework.apollo.model.ConfigChange;
import com.ctrip.framework.apollo.model.ConfigChangeEvent;
import com.ctrip.framework.apollo.spring.annotation.ApolloConfigChangeListener;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.context.scope.refresh.RefreshScope;
import org.springframework.context.annotation.Configuration;
@Slf4j
@Configuration
public class ApolloConfigListener {
private final static String AUTH_INTERCEPTOR = "ict.auth.";
@Autowired
private RefreshScope refreshScope;
@ApolloConfigChangeListener
public void onChange(ConfigChangeEvent changeEvent) {
log.info("Apollo config changed --- ");
for (String key : changeEvent.changedKeys()) {
ConfigChange change = changeEvent.getChange(key);
log.info("Apollo change - changeType: {}, key: {}, oldValue: {}, newValue: {}",
change.getChangeType(), change.getPropertyName(), change.getOldValue(), change.getNewValue());
}
//配置刷新 - 单点和权限验证参数配置对象
if (changeEvent.changedKeys().parallelStream()
.anyMatch(changedKey -> changedKey.startsWith(AUTH_INTERCEPTOR))) {
refreshScope.refresh("authAppIdConfig");
}
log.info("Apollo config refresh done --- ");
}
}
封装属性
@Data
@Component
@RefreshScope
@ConfigurationProperties(prefix = "ict.auth")
public class AuthAppIdConfig {
/**
* 所有的权限中的appId
*/
private List<String> appIdList;
}
apollo的配置文件
ict:
auth:
appIdList:
- abc
- fgh
- qwer
这篇关于动态刷新apollo配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!