CDI – Contexts and Dependency Injection in Java EE

titelbild_cdi
titelbild_cdi

Definition

CDI steht für Contexts and Dependency Injection. Es ist ein Java Standard und gehört zu der Java EE Spezifikation. Die Aufgabe der CDI ist, die Verknüpfung von Komponenten und Diensten innerhalb des Java EE Umfeldes zu gewährleisten. Es gibt noch weitere Spezifikationen unter Java, wie die Enterprise Java Bean (EJB) oder Open-Source-Frameworks wie Spring.

Aufbau von CDI

Aus Architektursicht sind Web-basierte Applikationen besser, wenn man sie komponentenbasiert erstellt. Dies spiegelt unteranderem auch das Umfeld einer Business Anwendung wieder. Da die Anforderungen gelegentlich auch aus unterschiedlichen fachlichen Bereichen entstehen, lässt es sich gut untereinander abgrenzen. Eine weitere Aufgabe der Softwareentwicklung ist, diese Komponenten wieder untereinander zu verknüpften und dabei die lose Kopplung beizubehalten. Damit reduziert sich die Abhängigkeiten unter den Komponenten und dem Programmcode. Die gesamte Applikation ist bedeutet flexibler. Benötigte Objekte werden von dem Applikation-Server bereitgestellt und verwaltet. Komponenten wissen nicht woher die genutzten Objekte kommen und der Komponenten Austausch ist damit einiges einfacher gestaltet.

Dependency Injection

Bei der Dependency Injection steuert der Application Container die Verwaltung der Objekte. Der Entwickler kümmert sich nicht mehr um die Lifecycle-Steuerung. Die injizierten Objekte werden einem Kontext zugeordnet. Diese verfügen über bestimmte Business Regeln und steuern damit ihren Lifecycle. Auch das Open-Source-Framework Spring unterstützt die in der Java Enterprise Entwicklung beschriebene lose Kopplung und die Typsicherheit. Durch den Verzicht auf Objektnamen und die Verwendung von Java Typen lassen sich Fehler zu Compile-Zeit und spätestens zu Deployment-Zeit aufdecken und nicht erst zur Laufzeit der Anwendung.

Voraussetzung für CDI

Da nun der Aufbau und die Dependency Injection geklärt ist, fehlt uns nur noch – die CDI im Java Umfeld einzusetzten. Grundsätzlich kann jede Java Klasse als CDI-Bean auftreten. Die in Java verknüpften Klassen werden als CDI Beans oder auch Managed Beans bezeichnet. Die einzige Voraussetzung ist nur ein parameterloser Konstruktor der jeweiligen Klasse.

Leave a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert