Valeur des Properties Spring par défaut
Astuce bien pratique que je viens de découvrir dans Spring, il est possible d’attribuer des valeurs par défaut aux « property » (@Value) de cette manière :
@Configuration public class RequestConfiguration { @Value(value = "${repository?InMemoryRepository}") private String repository; }
Pour ce faire, il faut configurer le property placeholder de Spring pour :
- Ignorer les @Value vide
- remplacer le séparateur par défaut (« : ») par « ? » qui est plus parlant.
<bean id="placeholderConfig"> <property name="locations"> <list> <value>classpath:conf.properties</value> </list> </property> <property name="ignoreResourceNotFound" value="true"/> <property name="ignoreUnresolvablePlaceholders" value="true" /> <property name="valueSeparator" value="?" /> </bean>
Et voilà !
Maintenant il faut faire attention car Spring va ignorer toutes les properties null ce qui pourra provoquer des NullPointerException à l’exécution plutôt que des erreurs de configuration au démarrage de l’application…
Moi je garde le « : » à la place du « ? »
En revanche, tu peux le compacter :