0

J'ai une petite application web de démarrage (jar exécutable) qui a quelques propriétés personnalisées dans le fichier application.properties. Mon but est de pouvoir modifier ces propriétés de façon dynamique au moment de l'exécution sans devoir exécuter un build/deploy ou redémarrer le processus java. Le projet spring-cloud-starter-config semble être bien adapté pour cela (même si je n'utilise pas de serveur de configuration) mais j'ai rencontré le problème suivant:spring-cloud-starter-config POST/env ne fonctionne pas

Dans mon fichier pom.xml j'inclue les dépendances au printemps -boot-starter-actuator et spring-cloud-starter-config. Les application.properties configurent ci-dessous les propriétés

management.port=8081 
management.context-path=/management 
management.security.enabled=false 
foo=bar 

Je peux lire les variables à l'aide

curl http://localhost:8081/management/env/foo 
{"foo":"bar"} 

Ci-dessous la mise à jour semble réussir aussi bien

curl -X POST -d foo=foo http://localhost:8081/management/env 
{"foo":"foo"} 

Lorsque je questionne l'ensemble env Je vois la valeur modifiée dans la section manager et la valeur d'origine dans applicationConfig

curl http://localhost:8081/management/env 
{ 
    ... 
    "manager": { 
    "foo": "foo" 
    }, 
    ... 
    "configServerClient": { 
    "spring.cloud.config.enabled": "false" 
    }, 
    ... 
    "applicationConfig: [classpath:/application.properties]": { 
    ... 
    "foo": "bar", 
    ... 
    } 
} 

Maintenant, quand je fais une recherche de la variable encore, je reçois toujours l'ancienne valeur

curl http://localhost:8081/management/env/foo 
{"foo":"bar"} 

Ceci est contraire à ce que je lis sur certains blogs web. Selon moi, la valeur changée devrait apparaître. Qu'est-ce que je fais de mal? Existe-t-il un meilleur moyen de modifier dynamiquement les valeurs dans application.properties sans redémarrer le serveur?

Votre aide est grandement appréciée.

+0

Quelle est la sortie que vous obtenez? – Creator

Répondre

1

Vous devez exécuter rafraîchir après l'affichage des modifications à l'env

curl -X POST http://localhost:8081/management/refresh