Sto cercando di capire come utilizzare l'integrazione delle dipendenze in Play Framework 2.4. Conosco i principi generali, ma non capisco le implicazioni per il design. Il mio ragionamento generale è stato, i metodi statici nelle classi controller sono troppo simili all'utilizzo di variabili globali e questo può facilmente causare problemi con la sicurezza dei thread, ecc. Quindi, dal momento che Play ora incoraggia a passare a un'iniezione di dipendenza, dovrei cambiare anche io.Iniezione framework java dependency Play - quando utilizzare i singleton
Ciò di cui sono confuso è quale buona pratica è in questo contesto. Quando leggo Play docs ufficiali, si parla brevemente di injection dependency e quindi cita prontamente un'annotazione @Singleton. E l'esempio disponibile (http://www.typesafe.com/activator/template/play-guice) parla anche di una classe "WelcomeTextGenerator" singleton.
Quindi mi chiedo, dovrei usare gli oggetti singleton come sembrano suggerire gli esempi? Se questo è il caso, qual è il vantaggio rispetto al vecchio metodo statico? Esistono tipi di oggetto specifici (ad esempio, controller?) Che dovrebbero essere singleton e ci sono implicazioni di performance nel non contrassegnare oggetti come singleton?
Grazie - questo è quello di cui avevo bisogno. Ho trovato molto utile la pagina "Scopes" a cui hai collegato.Non era ovvio per me dalla documentazione di Play perché "singleton" fosse evidenziato, o che ci fossero altre opzioni - questo ha molto più senso. – myrosia
Dopo un po 'più di ricerca, un potenziale avvertimento: la pagina "Scopes" Guice parla di Scope di richiesta e Session Scope, ma come meglio posso dire, Play non supporta quelli, perché non usa l'implementazione del contenitore servlet di Google e non fornire il proprio al momento. Quindi in questo senso la pagina dei documenti può essere fuorviante, perché non chiarisce la dipendenza dell'implementazione. – myrosia