当前位置: 首页 > 面试题库 >

如何使用@Value Spring注释注入地图?

公孙宏畅
2023-03-14
问题内容

如何在Spring中使用@Value批注将值从属性文件注入Map中?

我的Spring Java类是我尝试使用$,但收到以下错误消息

无法自动装配字段:私有java.util.Map Test.standard; 嵌套异常是java.lang.IllegalArgumentException:无法解析字符串值“ $ {com.test.standard}”中的占位符'com.test.standard'

@ConfigurationProperty("com.hello.foo")
public class Test {

   @Value("${com.test.standard}")
   private Map<String,Pattern> standard = new LinkedHashMap<String,Pattern>

   private String enabled;

}

我在.properties文件中具有以下属性

com.test.standard.name1=Pattern1
com.test.standard.name2=Pattern2
com.test.standard.name3=Pattern3
com.hello.foo.enabled=true

问题答案:

我相信Spring Boot支持使用@ConfigurationProperties注释开箱即用地加载属性映射。

根据该文档,你可以加载属性:

my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com

像这样变成豆子:

@ConfigurationProperties(prefix="my")
public class Config {

    private List<String> servers = new ArrayList<String>();

    public List<String> getServers() {
        return this.servers;
    }
}

我之前使用过@ConfigurationProperties功能,但没有加载到地图中。你需要使用@EnableConfigurationProperties批注才能启用此功能。



 类似资料:
  • 问题内容: 如何在React组件的方法内部使用注释? 我有以下组成部分: 我的评论显示在用户界面中。 在组件的渲染方法中应用单行和多行注释的正确方法是什么? 问题答案: 因此,在方法内允许使用注释,但为了在JSX中使用它们,必须将它们用大括号括起来并使用多行样式的注释。 您可以在此处阅读有关注释如何在JSX中工作的更多信息

  • 我试图实现这样的东西 但我不知道这是否可行有人能帮我谢谢你

  • 问题内容: 我的spring bean具有一个带有唯一强制性参数的构造函数,我设法用xml配置对其进行了初始化: 然后,我像这样使用此bean,并且效果很好。 但是我想用注释指定contructor arg值,例如 这可能吗 ? 提前致谢 问题答案: 首先,必须在bean定义中而不是在注入点中指定构造函数arg。然后,你可以利用spring的注释(spring 3.0) 就我所看到的问题而言,这可

  • 和和注释之间有什么区别? 我们应该在什么时候使用它们每一个?

  • 我已经使用Spring几十年了,但以前从未遇到过这个用例。 是否有方法注入所有带特定注释的bean,例如,所有带服务的bean或所有带自定义注释的bean? 我唯一的想法是注入上下文,获取所有bean并手动过滤。如果这是唯一的方法,Spring是否公开了一种递归扫描类层次结构以查找(元)注释的方法(因为大多数Spring注释都可以用作元注释)?