From 0db10356ee63133192d624c4935e2bd8e4677dbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=A6=E7=9B=8F?= Date: Tue, 9 Oct 2018 20:29:45 +0800 Subject: [PATCH] Fixes #32 support fileExtension yaml and yml --- .../client/NacosPropertySourceBuilder.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/client/NacosPropertySourceBuilder.java b/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/client/NacosPropertySourceBuilder.java index 6fb8ffa97..4e5d63b67 100644 --- a/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/client/NacosPropertySourceBuilder.java +++ b/spring-cloud-alibaba-nacos-config/src/main/java/org/springframework/cloud/alibaba/nacos/client/NacosPropertySourceBuilder.java @@ -28,6 +28,8 @@ import com.alibaba.nacos.api.exception.NacosException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; +import org.springframework.core.io.ByteArrayResource; import org.springframework.util.StringUtils; /** @@ -83,11 +85,22 @@ public class NacosPropertySourceBuilder { data = configService.getConfig(dataId, group, timeout); // todo add content type yaml support if (!StringUtils.isEmpty(data)) { - Properties properties = new Properties(); logger.info(String.format("Loading nacos data, dataId: '%s', group: '%s'", dataId, group)); - properties.load(new StringReader(data)); - return properties; + + if (fileExtension.equalsIgnoreCase("properties")) { + Properties properties = new Properties(); + + properties.load(new StringReader(data)); + return properties; + } + else if (fileExtension.equalsIgnoreCase("yaml") + || fileExtension.equalsIgnoreCase("yml")) { + YamlPropertiesFactoryBean yamlFactory = new YamlPropertiesFactoryBean(); + yamlFactory.setResources(new ByteArrayResource(data.getBytes())); + return yamlFactory.getObject(); + } + } } catch (NacosException e) {