2016-09-06 5 views
2

Je souhaite charger un fichier .properties supplémentaire avec Spring si et seulement si un profil supplémentaire est actif. Par exemple. Si le profil "foo" est actif, je veux charger foo.properties. Ce code pseudo est ce que je veux, en supposant "spring.profiles.active = default, foo":Spring: charge des propriétés supplémentaires en fonction du profil

<context:property-placeholder 
location="classpath:component.properties${(spring.profiles.active).contains('foo') ? ',classpath:foo.properties' : ''}" /> 

Est-il possible de le faire au printemps?

+1

Je suggère d'ajouter Spring Boot à votre application, qui prend en charge ce prêt-à-l'emploi. –

+0

Je suis d'accord avec @ M.Deinum, mais voir [cette réponse] (http://stackoverflow.com/questions/28191736/spring-xml-dynamic-property-placeholder-construction/28194233#28194233) qui utilise SpEL pour faire quelque chose similaire indirectement via 'properties-ref'. Mettez simplement votre 'util: properties' dans le profil. –

Répondre

1

Vous pouvez utiliser comme ceci si vous n'avez pas plusieurs profils en même temps.

<context:property-placeholder location="classpath:${spring.profiles.active}.properties" /> 
+0

C'est mon problème, j'ai plusieurs profils. –