Manchmal ist es notwendig, ein Framework zu erweitern. Manchmal ist es notwendig, sich in den Anfrage/Antwort-Lebenszyklus einzuklinken, zum Beispiel für eine Parameterbindung oder um ein Sicherheitsmodul zu schreiben. Wie könnte das im playframework 1.x gemacht werden?Wie erweitere ich den Spielrahmen?
Antwort
Es gibt zwei Möglichkeiten, die Wiedergabe 1.x zu erweitern. Zuerst können Sie Ihr eigenes Modul schreiben. Dies wird detailliert beschrieben here. Dies ist nützlich, wenn Sie eine Bibliothek wie iText bereitstellen oder einen speziellen Authentifizierungsmechanismus bereitstellen möchten.
Die zweite Möglichkeit ist eine PlayPlugin
schreiben. Dies wird oft in Modulen gemacht, aber es ist keine notwendige Bedingung. Um ein PlayPlugin
erfordert zwei Schritte zu schreiben:
- Schreiben Sie eine Klasse, die die Klasse
PlayPlugin
und außer Kraft setzen einige seiner methods zum BeispielmyPackage.MyPlugin
genannt erstreckt. - Registrieren Sie Ihr Plugin. Dazu erstellen Sie eine Datei mit dem Namen
play.plugins
und legen sie in den Klassenpfad ein. Die Datei muss eine Zeile wie1003:myPackage.MyPlugin
enthalten.
Die Nummer definiert die Reihenfolge, in der die Plugins aufgerufen werden. Ich empfehle, Ids> 1000 zu verwenden. Wenn Sie möchten, dass es vor einem Framework-Plugin geladen wird, sehen Sie here (Die IDs sind seit 1.1.1 gültig).
Das ist es. Um ein Gefühl dafür zu bekommen, was man mit einem Plugin machen kann, siehe javadoc. Sie können in Haken:
- Der Request/Response-Zyklus
- Der Bindeprozess
- Anwendung Start/
- stoppen
Leider ist die javadoc Dokumentation Classloading ist minimal, aber don‘ Ich zögere, in den Code des Spielrahmens selbst zu schauen. Es ist leicht zu verstehen und gibt dir gute Ideen.
große Antwort, niels ... sollte gerade gehen Dokumentation zu spielen-Rahmen – opensas
ich Ihre Methode versucht haben, aber es scheint, als ob mein Plugin zweimal geladen wird. Meine Protokolle sais: 14: 00: 51.454 INFO ~ - beforeInvocation [email protected] 14: 00: 51.454 INFO ~ - beforeInvocation [email protected] : zwei Objekte mit unterschiedlichen IDs –
Wenn Sie Eclipse Die Datei 'play.plugins' wird in den Klassenordner kopiert. Wenn Sie mit der Wiedergabe von Eclipse beginnen, wird Play die Datei zweimal finden und Ihr Plugin zweimal laden. – niels