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.
Quelle est la sortie que vous obtenez? – Creator