2017-10-04 17 views
0

Ce que je veux être en mesure de le faire est:Est-il possible de lire la propriété YAML en utilisant l'annotation Carte printemps et @Value

YAML:

features: 
    feature1: true 
    feature2: false 
    feature3: true 

code:

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

Je n'arrive pas à comprendre quelle syntaxe de script Spring utiliser pour faire ceci (si c'est possible du tout)

+1

double possible de [Spring Boot - injecter map depuis application.yml] (https://stackoverflow.com/questions/24917194/spring-boot-inject-map-from-application-yml) –

Répondre

0

J'utilise Spring Boot et j'accède custo m variables comme celui-ci:

  1. créer une classe personnalisée qui correspond à vos propriétés personnalisées:

    @Component 
    @ConfigurationProperties(prefix="features") 
    public class ConstantProperties { 
        private String feature1; 
    
        public String getFeature1(){ 
         return feature1; 
        } 
        public void setFeature1(String feature1) { 
         this.feature1 = feature1; 
        } 
    } 
    
  2. fichier YAML ressemblera à ceci:

    features: 
        feature1: true 
        feature2: false 
        feature3: true 
    
  3. dans votre classe vous souhaitez accéder à ces propriétés, vous pouvez utiliser ce qui suit:

    @Autowire 
    private ConfigurationProperties configurationProperties; 
    
  4. ensuite d'accéder à cette classe, utilisez la syntaxe suivante:

    configurationProperties.getFeature1(); 
    
  5. Ou vous pouvez référencer la propriété personnalisée comme:

    "{{features.feature1}}"