Quando si avvia l'applicazione Grails, avvio anche un processo di integrazione e batch di Spring in background. Voglio avere alcune proprietà di connessione DB memorizzate nel file Config.groovy, ma come posso accedervi da una classe Java utilizzata nel processo di integrazione/batch?Accesso a Config.groovy dalla classe Java
ho trovato questa discussione:
Converting Java -> Grails ... How do I load these properties?
che suggerisce usando:
private Map config = ConfigurationHolder.getFlatConfig();
seguita da qualcosa come:
String driver = (String) config.get("jdbc.driver");
Questo funziona davvero bene (teh proprietà sono caricati correttamente da Config.groovy) ma il problema è t hat ConfigurationHolder è dopo essere stato deprecato. E qualsiasi discussione che ho trovato che fare con la questione sembra essere specifiche-Grails e suggerire utilizzando dependency injection, come in questa discussione:
How to access Grails configuration in Grails 2.0?
Così, c'è un modo non deprecato per ottenere l'accesso al Proprietà di Config.groovy da un file di classe Java?
Cosa c'è che non va nel secondo metodo nella [risposta accettata della domanda che hai collegato] (http://stackoverflow.com/a/7136095/6509)? –
Ciao Tim, evviva per aver risposto. Ho inserito la mia classe java come bean nel file delle risorse (con una proprietà di grailsApplication e un ref di grailsApplication) e ho aggiunto la seguente riga alla mia classe: private GrailsApplication grailsApplication; con getter e setter. Ma quando provo ad accedervi tramite ConfigObject config = grailsApplication.getConfig(); sembra essere nullo ed errori. Qualche idea su cosa sto facendo male? Grazie – Illu
Dove stai cercando di accedervi? Non è possibile utilizzare bean con aggiunta di dipendenza nel costruttore, ad esempio, è necessario dichiarare un metodo annotato con '@ PostConstruct' e inserire la logica che richiede' grailsApplication 'al suo posto, oppure utilizzare in alternativa l'argomento argomento del costruttore piuttosto che iniezione setter. –