J'ai ce qui suit dans un haricot de printemps:
@Value("${myValue}")
private String value;
La valeur est correctement injectée. Cependant, la variable doit être facultative, elle est transmise en tant que paramètre de ligne de commande (qui est ensuite ajouté au contexte Spring à l'aide d'un SimpleCommandLinePropertySource ), et cet argument n'existera pas toujours.
J'ai essayé les deux méthodes suivantes afin de fournir une valeur par défaut:
@Value("${myValue:}")
@Value("${myValue:DEFAULT}")
mais dans chaque cas, l'argument par défaut après les deux-points est injecté même s'il y a une valeur réelle - cela semble remplacer ce que Spring devrait injecter.
Quelle est la manière correcte de spécifier que @Value n'est pas obligatoire?
Merci
@Value("${some.prop:}")
fonctionne pour moi. C'est la seule annotation sur cette variable.