24.09.2012

Spring 3 - Bean Injection in Servlets

Spring Beans per Dependency Injection in Servlets einfügen? Geht das? Eigentlich klar, dass es geht, aber die Frage war, wie es geht!

Da ich mir sicher bin, dass der ein oder andere das nochmal brauchen kann, zumindest so lange, wie sich CDI noch nicht durchgesetzt hat, habe ich mal ein kleines Beispiel erstellt.

Als Bean steht eine einfache Hello-World-Implementierung zur Verfügung.


Per Annotation konfiguriert soll diese in einem einfachen Servlet zur Verfügung stehen. Leider ist dies nicht ohne ein wenig Konfiguration und Implementierung möglich. Im ersten Schritt wird das Servlet im Application-Context registriert.


Im zweiten Schritt wird die Verarbeitung der Requests innerhalb der web.xml konfiguriert und das entsprechende Mapping erstellt.


Anders als in der normalen Definition eines Servlets, wird an dieser Stelle nicht die eigentliche Klasse des Servlets angegeben, sondern das vorgelagerte HttpRequestHandlerServlet, welches sich um die Verteilung der Requests an die zugehörigen Beans kümmert. Das Servlet selbst wird im Anschluss implementiert.


Das Servlet selbst implementiert das Interface HttpRequestHandler und stelle die Methode zur Abarbeitung der Requests zur Verfügung. Die HelloWorldBean wird durch den Container injected. Ein Aufruf des Servlets im Browser liefert dann folgendes Ergebnis:


Aufgabe vorerst erfüllt. Allerdings steht eine Nutzung der Servlet 3.0 Annotationen noch aus, vielleicht hat jemand da eine Idee!?

Beispiel wie immer im Repository! Auschecken und laufen lassen!

Keine Kommentare:

Kommentar veröffentlichen