Sto usando Play 2.4. Mi piacerebbe sostituire il router predefinito, con la mia classe, usando la nuova funzione di riproduzione dinamica delle dipendenze. Quali sono i passaggi per farlo?Custom Router in Playframework 2.4
7
A
risposta
3
Una possibile soluzione potrebbe essere quella di creare un nuovo modulo Guice, per vincolare il proprio nuovo router:
class RouterModule extends AbstractModule {
override def configure(): Unit = {
bind(classOf[Router]).to(classOf[CustomRouter])
}
}
quindi definire una nuova Application Loader, che ignorare il router di default configurato, utilizzando il modulo appena creato :
class MyApplicationLoader extends GuiceApplicationLoader with GuiceableModuleConversions {
override protected def overrides(context: Context): Seq[GuiceableModule] = {
Seq(fromGuiceModule(new RouterModule)) ++ super.overrides(context)
}
}
e utilizzare il caricatore applicazioni appena creato, al posto di quella di default, in application.conf:
play.application.loader = "de.zalando.store.pdp.modules.MyApplicationLoader"
Problemi correlati
- 1. PlayFramework 2.4 esegue un codice dopo l'avvio dell'applicazione
- 2. Angular 2 Custom Error Handling and Router
- 3. Versione di Akka in Playframework
- 4. Debug Playframework 2.0 in Eclipse
- 5. HTML PlayFramework, variabile in Javascript?
- 6. Memoria insufficiente in PlayFramework 2.0
- 7. Caricamento file multiplo in playframework
- 8. Locale del browser in Playframework
- 9. WPF: Custom + - in TreeView
- 10. Informazioni su Play 2.4 Iniezione delle dipendenze
- 11. android.content.res.Resources $ NotFoundException in Robolectric 2.4
- 12. SHA256 hash in Python 2.4
- 13. Playframework run e Global.onStart
- 14. playframework è veramente asincrono?
- 15. PlayFramework ~ esegue strani errori
- 16. Wicket o Playframework?
- 17. Playframework 2 SQLite
- 18. CloudBees + PlayFramework + Eclipse
- 19. Playframework: [RuntimeException: java.lang.reflect.InvocationTargetException]
- 20. Più router vs router singolo in BackboneJs
- 21. Playframework e Django
- 22. Utilizzo memoria di Playframework
- 23. Custom DatePicker
- 24. Custom 'ExportFactory'
- 25. Custom UIBarButtonItem
- 26. Mysterious Play 2.4 Injection exception
- 27. Custom ConfigurationSection
- 28. Invio di e-mail in Playframework 2.0
- 29. Minificazione HTML in build sbt per Playframework
- 30. Impostazioni di Playframework in base all'ambiente
Per https://www.playframework.com/documentation/2.4.x/ScalaRouting: è inoltre necessario aggiungere la seguente dichiarazione nel file sbt :; routesGenerator: = InjectedRoutesGenerator? Puoi indicarmi il documento per sapere come viene effettivamente scritta la rotta personalizzata? Il documento che ho collegato non ce l'ha. – 0fnt
IMHO si può beneficiare di giocare "Componenti" per sostituire le dipendenze iniettate (https://www.playframework.com/documentation/2.4.x/ScalaCompileTimeDependencyInjection). In questo modo devi solo scrivere il nuovo ApplicationLoader, farne riferimento in application.conf. Non c'è bisogno di scrivere il modulo guice. Stessa cosa se vuoi sostituire MessageApi – iwalktheline