Puis-je définir les propriétés système dans les fichiers de configuration Spring Boot?
J'ai un seul application.yml
fichier de configuration pour mon Ressort de Démarrage d'application qui définit deux profils (comme décrit dans la la documentation).
Lors de la production profil est activé, je voudrais mettre l' http.maxConnections
système de la propriété à une valeur personnalisée, par exemple
spring:
profiles:
active: dev
---
spring:
profiles: dev
---
spring:
profiles: production
http:
maxConnections: 15
Mais ce n'est pas réellement le niveau du système de la propriété; il semble juste de créer une application au niveau de la propriété. J'ai vérifié cela à travers les deux http://locahost:8080/env et une Console JMX lorsque l'on compare le lancement par les
java -jar -Dspring.profiles.active=production myapp.jar
contre
java -Dhttp.maxConnections=15 myapp.jar
Je suppose que je pourrais créer un bean qui est @Conditional
sur la "production" profil de programme appelsSystem.setProperty
basé sur mon application.yml
de la propriété définie, mais est-il une façon plus simple via les fichiers de configuration seul?
source d'informationauteur bdkosher
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est votre meilleur pari ici. Printemps de Démarrage ne prend que de lui-même dans son
LoggingSystem
où les différentslogging.*
propriétés sont mappés à des propriétés Système.Noter que vous aurez probablement souhaitez définir les propriétés du système dès que possible, probablement dès que le
Environment
est préparé. Pour ce faire, vous pouvez utiliser unApplicationListener
qui écoute leApplicationEnvironmentPreparedEvent
. VotreApplicationListener
de mise en œuvre doivent être enregistrés via une entrée dansspring.factories
.Vous pouvez essayer.
Vous pouvez injecter de l'environnement dans le constructeur de la classe qui spécifie les haricots. Cela permet d'écrire des propriétés de l'application pour le système de propriétés avant de les fèves sont en cours de création.
Vous pouvez également utiliser PropertyPlaceholderConfigurer de org.springframework.les haricots.usine.config pour obtenir de poignée plus de votre fichier de propriétés