是否可以使用Spring和@Value注释

时间:2017-10-04 21:04:12

标签: java spring yaml spring-el

我希望能做的是:

YAML:

features:
    feature1: true
    feature2: false
    feature3: true

代码:

@Value("${features}")
private Map<String,Boolean> features;

我无法弄清楚要使用哪种Spring脚本语法(如果可能的话)

1 个答案:

答案 0 :(得分:1)

我使用Spring Boot并访问自定义变量,如下所示:

  1. 创建一个映射到自定义属性的自定义类:

    @Component
    @ConfigurationProperties(prefix="features")
    public class ConstantProperties {
        private String feature1;
    
        public String getFeature1(){
            return feature1;
        }
        public void setFeature1(String feature1) {
            this.feature1 = feature1;
        }
    }
    
  2. YAML文件如下所示:

    features:
      feature1: true
      feature2: false
      feature3: true
    
  3. 在您的班级中
  4. 您要访问这些属性,您可以使用以下内容:

    @Autowire 
    private ConfigurationProperties configurationProperties;
    
  5. 然后要在该类中访问,请使用以下语法:

    configurationProperties.getFeature1();
    
  6. 或者您可以引用自定义属性,如:

    "{{features.feature1}}"