2010-11-26 14 views
2

je la question suivante:Evaluation Expression Spring (Annotation)

avec Spring, je voudrais propager la valeur référencée par la propriété 'mot de passe' à une variable de classe:

@Value("${password}") 
private String password; 

qui fonctionne aussi longtemps que le printemps peut trouver la propriété appelée «mot de passe». Comme il ne sera pas défini pour toutes les différentes exécutions, j'aimerais pouvoir affecter une valeur par défaut lorsque la propriété de mot de passe n'est pas disponible.

Je trouve l'exemple suivant:

@Value("${size_count?:5}") 
private int count; 

Cela fonctionne. Mais quand j'essaye la même chose pour le mot de passe (pour le type String), il évaluera toujours à false et retournera la chaîne 'x' bien que la propriété de mot de passe ait été définie.

@Value("${password?:x}") 
private String password; 

des idées?

Vive chris

Répondre

1

essayer (je devine, ne sais pas s'il est logique)

@Value("${password}?:'x'") 
+0

C'est la chose exacte, je l'ai suggéré. +1 pour cela, que ce soit vrai ou non :-) –

+0

Merci. Je suis venu avec cette idée aussi. Si le mot de passe était 'bla' alors le résultat de cette expression serait: bla?: 'X' Donc l'expression doit être dans {}. – chr1s

+0

l'avez-vous réellement essayé? – Bozho

1

?: est utilisé dans Expression Spring Langue, à savoir #{...}.

Dans les espaces réservés de propriété (${...}), vous devez utiliser ::

@Value("${password:x}") 
private String password; 
+0

+1 pour ça: parce que c'est le synax correct pour la placeholder configurateur de la propriété – Ralph