Ich benutze Play 2.4. Ich möchte den Standardrouter mit meiner eigenen Klasse ersetzen, indem ich die neue Funktion zur dynamischen Abhängigkeitsinjektion verwende. Was sind die Schritte, um das zu tun?Benutzerdefinierter Router in Playframework 2.4
7
A
Antwort
3
Eine mögliche Lösung wäre, ein neues Guice-Modul, erstellen Sie Ihren neuen Router zu binden:
class RouterModule extends AbstractModule {
override def configure(): Unit = {
bind(classOf[Router]).to(classOf[CustomRouter])
}
}
Dann definieren Sie eine neue Application Loader, der die Standard-konfigurierten Router außer Kraft gesetzt wird, durch das neu erstellte Modul :
class MyApplicationLoader extends GuiceApplicationLoader with GuiceableModuleConversions {
override protected def overrides(context: Context): Seq[GuiceableModule] = {
Seq(fromGuiceModule(new RouterModule)) ++ super.overrides(context)
}
}
Und die neu erstellte Anwendungslader, anstelle des Standard ein, in application.conf verwenden:
play.application.loader = "de.zalando.store.pdp.modules.MyApplicationLoader"
Verwandte Themen
- 1. Requisiten Routen in reagieren-Router 2.4
- 2. Wie schreiben Sie Zugangslogger für Netty in Playframework 2.4?
- 3. Akka-Version in Playframework
- 4. Scalatest Playframework Liste enthalten [Zeichenfolge]
- 5. PlayFramework Art von Middleware
- 6. Browsergebietsschema in Playframework
- 7. Http.Context in playframework Filter
- 8. Test WebSocket in PlayFramework
- 9. Anruf manuell PlayFramework benutzerdefinierte Fehlerseite
- 10. Pfadtrennzeichen in Python 2.4
- 11. playframework JsValue in HTML Vorlage
- 12. dynamischer Aktionsname in playframework 2.0
- 13. enthalten umgebungsspezifische Datei in playframework
- 14. wie playLogback in build.sbt mit playframework zu importieren
- 15. android.content.res.Resources $ NotFoundException in Robolectric 2.4
- 16. Template-Tags in CKAN 2.4
- 17. SHA256-Hash in Python 2.4
- 18. OpenCV 2.4 in Python - Videoverarbeitung
- 19. datetime Befehlszeilenargument in Python 2.4
- 20. Unicode-Zeichenfolge in Python 2.4
- 21. Playframework Vorlagen gestartet geting
- 22. Playframework 2.2 Resolvern
- 23. Playframework 2 SQLite
- 24. Playframework 2.5 Slick + DI
- 25. PlayFramework ~ run seltsame Fehler
- 26. playframework java asynchroner Methodenaufruf
- 27. Playframework Java Validierungsproblem
- 28. Playframework erhält Benutzer
- 29. Playframework 2.3.9 Abhängigkeitsüberschreibung
- 30. Playframework: [RuntimeException: java.lang.reflect.InvocationTargetException]
Per https://www.playframework.com/documentation/2.4.x/ScalaRouting: müssen Sie auch die folgende Anweisung in der sbt-Datei hinzufügen :; routesGenerator: = InjectedRoutesGenerator? Können Sie mich auf das Dokument verweisen, wie die benutzerdefinierte Route tatsächlich geschrieben ist? Das Dokument, das ich verlinkt habe, hat es nicht. – 0fnt
IMHO können Sie spielen "Komponenten", um injizierte Abhängigkeiten zu ersetzen (https://www.playframework.com/documentation/2.4.x/ScalaCompileTimeDependencyInjection). Auf diese Weise müssen Sie nur den neuen ApplicationLoader schreiben und ihn in der application.conf referenzieren. Keine Notwendigkeit, das Guice-Modul zu schreiben. Das gleiche gilt, wenn Sie den MessageApi ersetzen möchten – iwalktheline