Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring cloud SpringCloudConfig-如何从外部yaml文件中读取映射值_Spring Cloud_Spring Cloud Config - Fatal编程技术网

Spring cloud SpringCloudConfig-如何从外部yaml文件中读取映射值

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

从配置服务器,我想将属性作为映射注入到我的服务中。 我可以用@ConfigurationProperties注释来实现这一点;但是,使用@Value(以及@RefreshScope)从配置服务器读取;但是引发了一个异常: 无法将[java.lang.String]类型的值转换为所需的[java.util.Map]类型:找不到匹配的编辑器或转换策略



@服务
//@配置属性(前缀=“用户”)
@刷新范围
公开课范例{
@值(“${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;

}