/ / Comment maintenir, mettre à jour les propriétés de l'application de manière dynamique au printemps? [dupliquer] - printemps, printemps-mvc

Comment gérer, mettre à jour les propriétés de l'application de manière dynamique au printemps? [duplicate] - spring, spring-mvc

Je voudrais maintenir une liste d'applicationsdes propriétés telles que les noeuds finaux de service, les variables d'application, etc. dans une application Spring. Ces propriétés devraient pouvoir être mises à jour dynamiquement (éventuellement via une page Web par l'administrateur système).

Le printemps a-t-il une fonctionnalité intégrée pour accomplir cette exigence?

Réponses:

0 pour la réponse № 1

Externaliser les propriétés, jetez un oeil ici

Spring charge ces propriétés, qui peuvent être configurées au moment de l’exécution et consultées dans votre application de différentes manières.


0 pour la réponse № 2

Je ne suis pas sûr que spring dispose d'une implémentation pour la mise à jour dynamique du fichier de propriétés.

Vous pouvez faire quelque chose comme lire le fichier de propriétés en utilisant FileInputStream dans une Properties objet. Ensuite, vous pourrez mettre à jour les propriétés. Plus tard, vous pouvez écrire les propriétés dans le même fichier en utilisant le FileOutputStream.

// reading the existing properties
FileInputStream in = new FileInputStream("propertiesFile");
Properties props = new Properties();
props.load(in);
in.close();
// writing back the properties after updation
FileOutputStream out = new FileOutputStream("propertiesFile");
props.setProperty("property", "value");
props.store(out, null);
out.close();

0 pour la réponse № 3

Ajoutez votre propre implémentation d'un PropertySource à ton Environment.

Attention: Propriétés utilisées par @ConfigurationProperties et @Value Les annotations n'étant lues qu'une fois au démarrage de l'application, la modification des valeurs de propriété réelles au moment de l'exécution n'aura aucun effet (jusqu'à ce qu'elle soit redémarrée).


0 pour la réponse № 4

Je ne suis pas sûr, mais vérifiez si vous pouvez utiliser @ConfigurationProperties of Spring Boot Framework.

@ConfigurationProperties(locations = "classpath:application.properties", ignoreUnknownFields = false, prefix = "spring.datasource")
  1. Vous pouvez conserver ce fichier application.properties dans votre chemin de classe
  2. Modifier les propriétés dans ce fichier sans redéployer l'application

Experts Java - J'essaie simplement d'explorer mon point de vue. Les corrections sont toujours les bienvenues.

Edit - J'ai lu de bons exemples sur @PropertySource ici