11
votes

Utilisation de Spring3 @Value pour accéder aux valeurs de propriétéLetConfigurier?

J'essaie de définir la valeur d'une chaîne dans un haricot de printemps à l'aide de @Value , lorsque ma source de propriétés est une sous-classe de PropertyPlaceholderconfigurier . Quelqu'un sache comment faire cela?


0 commentaires

3 Réponses :


0
votes

Avez-vous réussi à le faire fonctionner en injectant explicitement la valeur du fichier de définition de haricot à l'aide de la syntaxe de la propriété? En théorie, si cela fonctionne, vous devriez pouvoir utiliser la même expression dans @Value . Pour cette affaire, vous devriez être capable de le faire en utilisant @Autowired @qualifier aussi


0 commentaires

0
votes

Je ne pense pas qu'il soit possible d'accéder aux propriétés chargées par PropertyPlaceholderconfigurier à l'aide de spel dans un @Value Annotation. Ce serait génial, mais aussi loin que je sache, la prochaine meilleure chose à faire est de déclarer: xxx

Il peut indiquer le même fichier de propriétés que votre PropertyPlaceholderconfigurier .



15
votes

Vieille question, mais il est toujours intéressant d'être répondu. Vous pouvez utiliser l'expression de la même manière que vous le feriez avec l'original PropertyProitHolderConfigurier .

app.properties xxx

app-context.xml < / p> xxx

dans le haricot cible xxx

testé cette approche à l'aide du ressort 3.0.6


2 commentaires

L'extra # {...} est en quelque sorte inutile (il fait une évaluation spel d'une chaîne statique). Depuis le printemps 3.x, la syntaxe $ {app.value} est prise en charge dans @Value Annotations et peut être utilisée pour injecter la propriété (mais ce n'était probablement pas au moment de cette question).


Vous êtes correct concernant le # {...} supplémentaire. Vous pouvez l'omettre et vous obtiendrez le même résultat. Je corrigerai ma réponse pour s'en débarrasser.