diff --git a/common/src/main/java/org/dromara/dynamictp/common/properties/DtpProperties.java b/common/src/main/java/org/dromara/dynamictp/common/properties/DtpProperties.java index fb54ddc30cd8608b53bde6a0391f36874f5d5d61..c66d0c3916250b55ebad1f81e0963283b52e333b 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/properties/DtpProperties.java +++ b/common/src/main/java/org/dromara/dynamictp/common/properties/DtpProperties.java @@ -52,7 +52,7 @@ public class DtpProperties { /** * Config file type. */ - private String configType = "yml"; + private String configType; /** * If enabled metrics collect. diff --git a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java index 1925a37230042cdc9feadada979086f2cab4f428..f860d162083a034c3afba6fa936bbf739631bb1e 100644 --- a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java +++ b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java @@ -17,6 +17,9 @@ package org.dromara.dynamictp.starter.nacos.refresher; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.nacos.api.annotation.NacosInjected; import com.alibaba.nacos.api.config.ConfigService; import com.alibaba.nacos.api.config.listener.Listener; @@ -53,7 +56,8 @@ public class NacosRefresher extends AbstractRefresher implements InitializingBea public void afterPropertiesSet() { DtpProperties.Nacos nacos = dtpProperties.getNacos(); - configFileType = NacosUtil.getConfigType(dtpProperties, ConfigFileTypeEnum.PROPERTIES); + ConfigFileTypeEnum deduceType = getConfigFileType(nacos.getDataId()); + configFileType = NacosUtil.getConfigType(dtpProperties, deduceType); String dataId = NacosUtil.deduceDataId(nacos, environment, configFileType); String group = NacosUtil.getGroup(nacos, "DEFAULT_GROUP"); @@ -65,6 +69,20 @@ public class NacosRefresher extends AbstractRefresher implements InitializingBea } } + /** + * 根据dataId后缀识别配置类型 + * @param dataId + * @return + */ + private ConfigFileTypeEnum getConfigFileType(String dataId) { + String suffix = FileUtil.getSuffix(dataId); + if (StrUtil.isBlank(suffix)) { + return ConfigFileTypeEnum.PROPERTIES; + } + return ConfigFileTypeEnum.of(suffix); + } + + @Override public Executor getExecutor() { return EXECUTOR;