© DrHitch/Shutterstock.com
Shortcuts
CDI

9 Kontexte und Scopes


Bislang haben wir uns um die reine „Verdrahtung“ der Anwendung gekümmert, d.h. um die Zuordnung von Beans untereinander mittels Dependency Injection. Damit ist der Name CDI aber nur zu zwei Dritteln erklärt. Das C in CDI steht für Contexts und deutet an, dass die CDI-Objekte Kontexten zugeordnet werden können. Eng damit verbunden ist der Begriff Scope, der die Lebensdauer der Objekte adressiert und auch assoziiert, dass die Objekte gemanagt, also nach gewissen Regeln vom Container erzeugt und wieder zerstört werden.

Scopes sind Ihnen aus dem Bereich der Webanwendungen vermutlich schon ein Begriff. Wir unterscheiden hier Request-, Session- und Application Scope. Dahinter stehen Objekte, die eine entsprechende Lebensdauer haben (Tabelle 9.1).

Scope

Lebensdauer

Java-Typ

Zugriff auf das Scope-Objekt in Servlets

Vordefinierte JSP-Variable

Request

Ein Request

ServletRequest oder HttpServletRequest

request (Parameter der Service-Methode)

request

Session

Vom Beginn einer Sitzung bis zu ihrem Ende

HttpSession

request.getSession(true)

session

Application

Vom Anwendungsstart an solange die Anwendung läuft

ServletContext

request.getServletContext()

application

Tabelle 9.1: Scopes von Webanwendungen

Die in der Tabelle angegebenen Informationen über Java-Typen und Zugriffsmöglichkeiten sollen Ihnen zur Orientierung dienen, wenn Sie bereits mit Servlets oder JavaServer Pages gearbeitet haben. Wenn nicht, vergessen Sie es einfach, denn Sie werden sich in den allermeisten Fällen mit diesen Dingen nicht mehr belasten müssen.

Die Objekte erlauben es mit Zugriffsfunktionen ähnlich denen in Map, andere Objekte in ihnen zu speichern. Diese haben dann die gleiche Lebensdauer, werden also am Ende des jeweiligen Lifecycle dem Garbage Collector überlassen.

CDI kennt neben den drei angesprochenen Scopes noch einen weiteren und kann mithilfe der Portable Extensions sogar noch beliebig ergänzt werden.

Der Fokus bezüglich der Scopes liegt in diesem shortcut auf Webanwendungen. Die Standard-Scopes sind aber in anderen Bereichen der Java EE, bspw. Enterprise JavaBeans, auch analog nutzbar.

Request Scope

Der Begriff „Request“ stammt im Wesentlichen aus dem Bereich der Webanwendungen, wo der Browser z. B. aufgrund der Betätigung eines Buttons einen Request auslöst, der auf Serverseite bearbeitet wird und mit dem Senden der Response zum Browser endet.

CDI Beans werden durch die Annotation @RequestScoped (javax.enterprise.context.RequestScoped Achtun...

Shortcuts
CDI

9 Kontexte und Scopes

Bislang haben wir uns um die reine „Verdrahtung“ der Anwendung gekümmert, d.h. um die Zuordnung von Beans untereinander mittels Dependency Injection. Damit ist der Name CDI aber nur zu zwei Dritteln erklärt. Das C in CDI steht für Contexts und deutet an, dass die CDI-Objekte Kontexten zugeordnet werden können. Eng damit verbunden ist der Begriff Scope, der die Lebensdauer der Objekte adressiert und auch assoziiert, dass die Objekte gemanagt, also nach gewissen Regeln vom Container erzeugt und wieder zerstört werden.

Shortcut Autorenteam


Bislang haben wir uns um die reine „Verdrahtung“ der Anwendung gekümmert, d.h. um die Zuordnung von Beans untereinander mittels Dependency Injection. Damit ist der Name CDI aber nur zu zwei Dritteln erklärt. Das C in CDI steht für Contexts und deutet an, dass die CDI-Objekte Kontexten zugeordnet werden können. Eng damit verbunden ist der Begriff Scope, der die Lebensdauer der Objekte adressiert und auch assoziiert, dass die Objekte gemanagt, also nach gewissen Regeln vom Container erzeugt und wieder zerstört werden.

Scopes sind Ihnen aus dem Bereich der Webanwendungen vermutlich schon ein Begriff. Wir unterscheiden hier Request-, Session- und Application Scope. Dahinter stehen Objekte, die eine entsprechende Lebensdauer haben (Tabelle 9.1).

Scope

Lebensdauer

Java-Typ

Zugriff auf das Scope-Objekt in Servlets

Vordefinierte JSP-Variable

Request

Ein Request

ServletRequest oder HttpServletRequest

request (Parameter der Service-Methode)

request

Session

Vom Beginn einer Sitzung bis zu ihrem Ende

HttpSession

request.getSession(true)

session

Application

Vom Anwendungsstart an solange die Anwendung läuft

ServletContext

request.getServletContext()

application

Tabelle 9.1: Scopes von Webanwendungen

Die in der Tabelle angegebenen Informationen über Java-Typen und Zugriffsmöglichkeiten sollen Ihnen zur Orientierung dienen, wenn Sie bereits mit Servlets oder JavaServer Pages gearbeitet haben. Wenn nicht, vergessen Sie es einfach, denn Sie werden sich in den allermeisten Fällen mit diesen Dingen nicht mehr belasten müssen.

Die Objekte erlauben es mit Zugriffsfunktionen ähnlich denen in Map, andere Objekte in ihnen zu speichern. Diese haben dann die gleiche Lebensdauer, werden also am Ende des jeweiligen Lifecycle dem Garbage Collector überlassen.

CDI kennt neben den drei angesprochenen Scopes noch einen weiteren und kann mithilfe der Portable Extensions sogar noch beliebig ergänzt werden.

Der Fokus bezüglich der Scopes liegt in diesem shortcut auf Webanwendungen. Die Standard-Scopes sind aber in anderen Bereichen der Java EE, bspw. Enterprise JavaBeans, auch analog nutzbar.

Request Scope

Der Begriff „Request“ stammt im Wesentlichen aus dem Bereich der Webanwendungen, wo der Browser z. B. aufgrund der Betätigung eines Buttons einen Request auslöst, der auf Serverseite bearbeitet wird und mit dem Senden der Response zum Browser endet.

CDI Beans werden durch die Annotation @RequestScoped (javax.enterprise.context.RequestScoped Achtun...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang