sto cercando di migrare un'applicazione play framework da 2,4 a 2.5.3 e non ho problemi a ottenere i valori da application.conf
di file:Giocare 2.5.3: Utilizzando l'iniezione di dipendenza per ottenere la configurazione valori
Prima per ottenere un valore da application.conf
quello che faccio è:
Play.application().configuration().getString("label")
Ora come Play.application()
è deprecato, dovrei usare l'iniezione di dipendenza. Sulla base del framework documentation io uso le seguenti istruzioni:
- Definire importazione: import
javax.inject.*; import play.Configuration;
- Definire proprietà di classe:
@Inject private Configuration configuration;
- Utilizzare la proprietà classe di configurazione sulla mia classe
Quando seguo queste istruzioni sul mio controller Application.java
funziona perfettamente:
Ma quando provo ad usarlo su un altro oggetto di classe dal mio progetto, l'iniezione di dipendenza non funziona e ottengo sempre un NullPointerException
.
Qualcuno può darmi un esempio su come ottenere valori da application.conf
usando Injection dipendenza?
Una parte del mio codice Java in cui cerco di usare il DI:
import javax.inject.Inject;
import play.Configuration;
import play.Logger;
public class Zipper {
@Inject private Configuration configuration;
public void unZip(String zipFilePath) {
Logger.debug("Display : zipFilePath"+zipFilePath);
Logger.debug("before call parameter from application.conf");
Logger.debug("configuration.getString = "+configuration.getString("Unzipedfile.path"));
Logger.debug("aftercall parameter from application.conf");
}
}
E ottengo sempre un'eccezione di puntatore nullo, in linea con configuration.getString("Unzipedfile.path")
pubblicare il codice che non funziona. – marcospereira
ho aggiornato come richiesto.
Lo stesso tipo di codice funziona sul mio controller application.java, ma mai sulle mie altre classi java. – Miguel
Non è possibile inserire in classi arbitrarie che non sono state create da DI o che non sono state introdotte nel contesto di Guice. Se la tua classe Zipper è stata creata da Guice o iniettata da qualche parte, allora avresti il contesto da iniettare. vedi http://stackoverflow.com/a/32896354/1956540 – BatteryAcid