Ho difficoltà a capire come applicare la nuova funzionalità di Dependency Injection in Play 2.4. Conosco Guice e manco nella Documentazione di gioco una spiegazione su come e quando avviene il legame effettivo. Ho letto il documento ufficiale [1] e ho provato a usare l'ultimo Play Mailer [2] come esempio. L'esempio Play Mailer utilizza una classe arbitraria e annota la proprietà MailerClient
con @inject
. Quando provo a utilizzare un oggetto di questa classe, la proprietà è null
, almeno durante il debug. Quindi, dove e quando devo fare l'iniezione vera e propria? Ho lo stesso problema per l'annotazione @singleton
. Viene semplicemente spiegato come annotarlo, ma non come ottenere un oggetto. Devo usare Guice direttamente o è integrato come?Informazioni su Play 2.4 Iniezione delle dipendenze
[1] https://www.playframework.com/documentation/2.4.x/JavaDependencyInjection
[2] https://github.com/playframework/play-mailer
Puoi mostrarci il tuo codice? – Salem
Fondamentalmente è simile all'esempio ufficiale Play Mailer. Avvio 'MyComponent' in un'altra classe e chiamo il metodo' sendMail() '. – linsenfips
Sono anche confuso da questo e mi piacerebbe vedere altri esempi là fuori. Sto scrivendo un codice S3 e ho un oggetto S3File dipendente da un S3Service che dovrebbe essere iniettato. Come posso creare una nuova istanza di S3File con S3Service iniettato in esso? Creo un iniettore nel mio controller? In tal caso, suppongo che userò "injector.getInstance (S3File.class)" invece di "new S3File"? Come faccio a creare l'iniettore: sembra eccessivo dover creare un impl specifico di AbstractModule per eseguire il binding per questa classe. Cosa fa @ImplementedBy sulla mia interfaccia, se non questo? – eljaydub