Primavera avvio variabili personalizzate Applicazione.proprietà

Ho molla di avvio del client che utilizza un api restful. Invece di inserire a mano l’indirizzo IP del RESTO API java la classe, c’è un tasto qualsiasi voce nell’applicazione.le proprietà che posso usare?

E se non, posso creare una voce personalizzata?

Grazie

InformationsquelleAutor Kingamere | 2015-08-17

 

3 Replies
  1. 82

    L’infrastruttura che la Primavera di Avvio può essere utilizzato nel vostro progetto nello stesso modo. Commentato nel @zmitrok risposta su “proprietà sconosciuta” di avvertimento. Che è perché la vostra struttura non dispone di meta-dati, in modo che l’IDE non sanno su di esso.

    Vorrei consigliamo non utilizzare @Value se è possibile in quanto è piuttosto limitato rispetto a ciò che la Primavera di Avvio offre (@Value è un Framework Spring funzione).

    Iniziare con la creazione di alcune POJO per il tuo IP:

    @ConfigurationProperties("app.foo")
    public class FooProperties {
    
        /**
         * IP of foo service used to blah.
         */
        private String ip = 127.0.0.1;
    
        //getter & setter
    }

    Quindi si hanno due scelte

    1. Mettere @Component su FooProperties e abilitare l’elaborazione di proprietà di configurazione aggiungendo @EnableConfigurationProperties su uno qualsiasi dei vostri @Configuration classe (quest’ultimo passaggio non è più necessario, come di Primavera di Avvio 1.3.0.M3)
    2. Lasciare FooProperties e aggiungere @EnableConfigurationProperties(FooProperties.class) a qualsiasi @Configuration classe che andrà a creare un Bean Spring automaticamente per voi.

    Una volta che hai fatto che app.foo.ip può essere utilizzato in application.properties e si può @Autowired FooProperties nel codice per cercare il valore della proprietà

    @Component
    public MyRestClient {
    
        private final FooProperties fooProperties;
    
        @Autowired
        public MyRestClient(FooProperties fooProperties) { ... }
    
        public callFoo() {
           String ip = this.fooProperties.getIp();
           ...
        }
    
    }

    Va bene così, la tua chiave è ancora giallo nell’IDE. L’ultimo passo è quello di aggiungi un extra di dipendenza che si guarda il tuo codice e generare il relativo meta-dati al momento della compilazione. Aggiungere il seguente pom.xml

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>

    E voilà, la tua chiave è riconosciuto, hai javadoc e l’IDE ti dà il valore di default, il valore inizializzato sul campo). Una volta che si può usare qualsiasi tipo di il servizio di conversione maniglie (cioè URL) e il javadoc sul campo è utilizzato per generare la documentazione per le chiavi.

    È inoltre possibile aggiungere qualsiasi JSR-303 di convalida del vincolo sul campo (per esempio una regex per il check è un ip valido).

    Controllare questo progetto di esempio e la documentazione per ulteriori dettagli.

    • Wow non aveva idea di questo (forse dovrei iniziare a leggere il doc alcuni di più), e questo ha contribuito ad una tonnellata, grazie.
    • Ho seguito la procedura (optando per l’opzione 1 di cui sopra), ma la Primavera Suite di strumenti che segna ancora la mia proprietà come sconosciuto in application.properties file. C’è una soluzione rapida disponibili per creare l’applicazione di metadati, ma ho assunto la spring-boot-configuration-processor doveva porvi rimedio?
    • Dovrete chiedere il M. team. Tutto quello che so è che dovrebbe funzionare out-of-the-box. Non c’è molto da studiare, creare un altro thread con più dettagli per favore.
    • questa è una caratteristica impressionante che ho appena scoperta e mi voglio ringraziare voi e il resto del team per tutto il lavoro che hanno fatto su di primavera-boot, mantenere il buon lavoro 😉
    • Non posso dire che questo è il diritto e il modo migliore per farlo, ma solo con @zmitrok funziona proprio bene. Ignorare l’avviso giallo
  2. 14

    Invece di inserire a mano l’IP nelle proprietà del file, è possibile avviare l’applicazione con

    -Dmy.property=127.127.10.20

    E Molla di Avvio riprende automaticamente con

    @Value("${my.property}")
    private String myProperty;
    • Dove posso aggiungere -Dmy.property ?
    • che IDE usi? Se si tratta di Eclipse: stackoverflow.com/questions/862391/…
    • se siete in esecuzione dalla riga di comando, basta aggiungere alla fine
    • ahh ok grazie, e di questo Dmy.proprietà e può essere aggiunto alla fine del java -jar my-application.war ?
    • sì, java -jar <il mio-app> -Dmy.property=127.127.127.127
    • Vedo grazie ..
    • questo credo sia il modo per andare

  3. 3

    È possibile aggiungere voci personalizzate per l’applicazione.proprietà. Basta assicurarsi che il nome della proprietà non contrasta con le proprietà comuni elencati all’ http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties

    • Vedo, ma quando inserisco restAPIServiceAddress come una voce evidenzia in giallo e dice “è un unkown proprietà”, è che va bene?
    • Ho appena aggiunto una risposta che spiega cosa sia quella cosa gialla significa.

Lascia un commento