2016-04-26 58 views
5

Sono davvero nuovo per la primavera. Io uso la funzione di configurazione esterna fornita da avvio a molla. Funziona bene e l'ho usato in diverse classi di configurazione, spesso solo con valori predefiniti. Ora voglio avere una panoramica sulle proprietà di configurazione che ho usato. Ciò significa che è necessario conoscere tutte le proprietà impostate con @Value(...) o con @ConfigurationProperties(prefix = ...). C'è un modo per ottenere queste informazioni da primavera? Posso farlo con riflessioni, ma penso che questo non sia il modo migliore.C'è un modo per ottenere i nomi di tutte le proprietà di configurazione in avvio di primavera?

+3

La funzionalità dell'attuatore in spring-boot esporrà questi come uno degli endpoint, in modo da poter guardare la fonte e vedere come stanno facendo. – cjstehno

+0

Ok, grazie. Ho usato il [endpoint di configprops] (https://github.com/spring-projects/spring-boot/blob/10012cfddc5479ee9a5cbe98bfe4f76483965bd1/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ ConfigurationPropertiesReportEndpoint.java) per testarlo, ma funziona solo per i membri pubblici configurati da '@ConfigurationProperties (prefix = ...)'. – Chris

+0

È possibile provare l'endpoint dell'attuatore Spring di terze parti che espone le proprietà e i relativi metadati di configurazione Spring. Filtro opzionale/include/esclude: https://github.com/ethlo/spring-actuator-addons/tree/master/spring-actuator-config –

risposta

0

Se si utilizza STS, esiste un editor speciale per il file application.properties con una funzione di completamento automatico. Se si utilizza Eclipse, è necessario accedere alla classe che si desidera configurare e controllare le annotazioni @Value nel codice.

+1

Grazie, ma questo non risolve il mio problema. Voglio essere in grado di estendere il programma di myselve o darlo ad altri sviluppatori che lo estendono senza scrivere ogni voce di configurazione a mano nel file delle proprietà. Così speravo, che sarà possibile scrivere l'intera configurazione compresi i valori predefiniti in un nuovo file delle proprietà dopo l'avvio del programma. Usando l'editor STS ho ancora bisogno di scrivere la configrazione a mano conoscendo tutte le proprietà di configurazione. – Chris

+0

È possibile creare un file chiamato META-INF/additional-spring-configuration-metadata.json e aggiungere il contenuto in questo modo: {"proprietà": [{ "nome": "my.att", "tipo" : "java.lang.String", "description": "Una descrizione per 'my.att'" }]} In te application.properties è possibile aggiungere: my.att = 20 Utilizzando STS , il completamento automatico sarà disponibile con la descrizione fornita nel file dei metadati. Maggiori informazioni qui: https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html – Sigrist

+0

Questo è un modo possibile per gli sviluppatori del programma. Ma quello che voglio è consentire agli utenti del programma (senza avere editor speciali) di ricreare una configurazione di default (ad esempio nel caso in cui la configurazione corrente sia corrotta) solo eliminando il file di configurazione e riavviando il programma. Quindi ho bisogno di sapere se c'è una classe che posso sovrascrivere e ottenere le informazioni necessarie per creare un file di configurazione predefinito. – Chris

Problemi correlati