Inhalt Abbildung PDF Source SCWCD
 |<    <     >    >|  Generated by CoCoDiL

13.5 Service Locator

Besorgt und cached alle J2EE-Ressourcen, die eine Komponente für die Abbildung der Geschäftslogik benötigt Typischerweise wird ein Service Locator für das Auffinden von Homes, LocalHomes oder DATA Sources verwendet.

Zum Auffinden von J2EE-Ressourcen wird meistens JNDI (Java Naming und Directory Interface) verwendet. Durch Verwendung des Service Locators müssen sich die Clients nicht mit JNDI herumschlagen.


Abb. 13.8: Service Locator

Die Komponenten:

Ein Client braucht zur Bearbeitung seiner Aufgabe ein BusinessService Objekt. Er verwendet den Service Locator um dieses Objekt zu suchen und zu bekommen.

Der ServiceLocator übernimmt für den Clienten die Suche nach dem richtigen BusinessService Objekt.

Das InitialContext ist ein Einstiegspunkt für die Suche in einem Directory. Ein Directory ist baumartig strukturiert. Das InitialContext spezifiziert den Startknoten. Es wird dann in dem Directory von dem Startknoten aus gesucht, bis das BusinessService Objekt gefunden wird. Er erzeugt einen InitialContext um die Suche zu starten.

Das ServiceFactory wird benötig, da das BusinessService Objekt einen Lebenszyklus wie ein Servlet hat. D.h. ggf muss das ServiceFactory das BusinessService Objekt erst einladen, und instantiieren bevor es verwendet wird.

Das BusinessService Objekt bietet dem Clienten hoffentlich genau den Dienst an, den der Client benötigt.

Vorteile

13.6 Interception Filter

Filter haben Zugriff auf den Request und Response einer Webkomponente und ist somit in der Lage, ihre Funktionalität dynamisch zu erweitern. Mit Filter kann man sich vor und nach der eigentlichen Verarbeitung in einer Webkomponente einklinken.

Der Interception Filter erlauben es verschiedene Filter miteinander zu kombinieren. Filter hinzuzufügen oder zu entfernen ohne in den Code eingreifen zu müssen.

Filter wurden im Kapitel über das Web Container Model ausführlich behandelt.

Vorteile:

Nachteile:

Inhalt Abbildung PDF Source SCWCD
 |<    <     >    >|  Generated by CoCoDiL