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 № 1Externaliser 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")
- Vous pouvez conserver ce fichier application.properties dans votre chemin de classe
- 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