Spring cloud SpringCloudConfig-如何从外部yaml文件中读取映射值
从配置服务器,我想将属性作为映射注入到我的服务中。 我可以用@ConfigurationProperties注释来实现这一点;但是,使用@Value(以及@RefreshScope)从配置服务器读取;但是引发了一个异常: 无法将[java.lang.String]类型的值转换为所需的[java.util.Map]类型:找不到匹配的编辑器或转换策略Spring cloud SpringCloudConfig-如何从外部yaml文件中读取映射值,spring-cloud,spring-cloud-config,Spring Cloud,Spring Cloud Config,从配置服务器,我想将属性作为映射注入到我的服务中。 我可以用@ConfigurationProperties注释来实现这一点;但是,使用@Value(以及@RefreshScope)从配置服务器读取;但是引发了一个异常: 无法将[java.lang.String]类型的值转换为所需的[java.util.Map]类型:找不到匹配的编辑器或转换策略 @服务 //@配置属性(前缀=“用户”) @刷新范围 公开课范例{ @值(“${user}”) Map试验; } 您不需要@Configurati
@服务
//@配置属性(前缀=“用户”)
@刷新范围
公开课范例{
@值(“${user}”)
Map试验;
}
您不需要@ConfigurationProperties
上的@RefreshScope
或@Service
@ConfigurationProperties
默认在刷新范围内。感谢您的响应。另外,通过删除@value注释并提供get/set for test变量,我还解决了属性未作为映射从配置服务器加载的问题@ConfigurationProperties(prefix=“user”)公共类示例{Map test;public Map getTest(){return test;}public void setTest(Map tet){this.test=test;}}
请查看我关于如何在Spring中读取YAML文件的评论,并将其包含在JUnit和TestNG测试中,如下所示:
application.yml:(in config server)
user:
test:
key1:
val1,val2
key2:
val1,val2
@Service
//@ConfigurationProperties(prefix="user")
@RefreshScope
public class Example {
@Value("${user}")
Map<String, List<String>> test;
}