@Slf4j @Configuration public class AutoListenerChangConfig { private static final String TAG = "isOpen"; @Autowired private XXConfiguration XXConfiguration; @ApolloConfig private Config config; @ApolloConfigChangeListener(interestedKeys = {TAG}) private void onChange(ConfigChangeEvent changeEvent) throws IOException, InterruptedException { refreshConfig(); } @PostConstruct private void refreshConfig() throws IOException, InterruptedException { Set<String> keyNames = config.getPropertyNames(); for (String key : keyNames) { if (containsIgnoreCase(key, TAG)) { Boolean refresh = config.getBooleanProperty(key, false); if (refresh) { //doSomeThing } else {
//doSomeThing
} } } } private static boolean containsIgnoreCase(String str, String searchStr) { if (str == null || searchStr == null) { return false; } int len = searchStr.length(); int max = str.length() - len; for (int i = 0; i <= max; i++) { if (str.regionMatches(true, i, searchStr, 0, len)) { return true; } } return false; }
阿波罗配置监听器
最新推荐文章于 2024-06-12 11:04:43 发布