当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring@value注入映射

卢晟
2023-03-14

我们使用的是Spring Boot2。

我们想使用Spring Boot的刷新机制,但是由于一个bug我们不能使用@configuration,因此我们不得不用@value@refreshScope替换所有这些。

所以我们用了:

@Configuration
@RefreshScope
public class MyConfig {
     @Value("${myMap}")
    private Map<String, String> myMap;
}

例如,使用该YAML文件:

myMaps:
  key1: Value
  key2: Another Value
    null

但是我们不能使用其他类型的属性绑定,因为我们正在将这个应用程序部署到kubernetes中,并使用kubernetes的配置映射。

所以我们想知道,是否还有其他机会让@valuemap一起工作

共有1个答案

督冠玉
2023-03-14

与:@value(“${myMap}”)不同,您需要像下面这样编写@value(“#{${myMap}}”)

'#'将后面花括号中的内容视为Spring Expression Language(SpEL)。

 类似资料:
  • 问题内容: 如何在Spring中使用@Value批注将值从属性文件注入Map中? 我的Spring Java类是我尝试使用$,但收到以下错误消息 无法自动装配字段:私有 嵌套异常是:无法解析字符串值中的占位符 我在.properties文件中具有以下属性 问题答案: 我相信Spring Boot支持使用注释开箱即用地加载属性映射。 根据该文档,你可以加载属性: 像这样变成豆子: 我之前使用过@Co

  • 问题内容: 使用诸如 可以分配具有某些属性的某些字段。 是否有更短,更简洁的形式来执行此操作? 问题答案:

  • 在过去,我使用Spring的XML配置连接bean,在这种情况下,我可以这样做(假设bean有属性的公共setter): 当使用基于注释的配置时,是否存在类似的情况?

  • 如何使用注释填充值映射,而不在applicationContext中定义任何内容。xml或任何其他xml文件。 我使用的是SpringBoot,它没有任何XML文件,也不需要任何XML文件,所以请不要告诉我用XML等声明任何属性读取器bean。 此外,这是一个属性注入问题-请不要建议使用数据库存储数据-这不是一个答案,对于我的情况也不可能。 此外,我也不能使用YAML(由于部署/操作需求)。 我已

  • 到底是怎么回事? 提前谢了。