/ / Come mantenere, aggiornare le proprietà dell'applicazione in modo dinamico in primavera? [duplicato] - primavera, primavera-mvc

Come mantenere, aggiornare le proprietà dell'applicazione in modo dinamico in primavera? [duplicato] - primavera, primavera-mvc

Vorrei mantenere un elenco di applicazioniproprietà come endpoint di servizio, variabili applicative, ecc. in un'applicazione Spring. Queste proprietà dovrebbero essere aggiornate dinamicamente (possibilmente attraverso una pagina web dall'amministratore di sistema).

La primavera ha una caratteristica intrinseca per soddisfare questo requisito?

risposte:

0 per risposta № 1

Proprietà di esternalizzazione, dai un'occhiata Qui

Spring carica queste proprietà che possono essere configurate in fase di runtime e accessibili nell'applicazione in diversi modi.


0 per risposta № 2

Non sono sicuro che la primavera abbia un'implementazione per l'aggiornamento dinamico del file delle proprietà.

Puoi fare qualcosa come leggere il file delle proprietà usando FileInputStream in un Properties oggetto. Quindi sarai in grado di aggiornare le proprietà. In seguito è possibile riscrivere le proprietà nello stesso file utilizzando 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 per risposta № 3

Aggiungi la tua implementazione di a PropertySource alla tua Environment.

Avvertimento: Proprietà utilizzate da @ConfigurationProperties e @Value le annotazioni vengono lette solo una volta all'avvio dell'applicazione, quindi la modifica dei valori delle proprietà effettive in fase di esecuzione non avrà alcun effetto (fino al riavvio).


0 per risposta № 4

Non sono sicuro, ma controlla se puoi usare @ConfigurationProperties del framework di avvio di Spring.

@ConfigurationProperties(locations = "classpath:application.properties", ignoreUnknownFields = false, prefix = "spring.datasource")
  1. È possibile mantenere questo file application.properties nel classpath
  2. Modificare le proprietà in questo file senza ridistribuire l'applicazione

Esperti Java - Sto solo cercando di esplorare il mio punto di vista. Le correzioni sono sempre ben accette.

Modifica - Ho letto un buon esempio su @PropertySource Qui