EJB 3.1 – Charakteristiken

Ich besch√§ftige mich gerade mit EJBs. Und damit ich das alles verstehe, blog ich halt immer wieder bissle was ūüôā

Was ist eigentlich eine EJB? Ich mach es mir einfach und √ľbersetz einfach den passenden Teil aus der JSR 318 Abschnitt 2.3.1 Characteristics of Enterprise Beans

Die wesentlichen Teile einer Enterprise-Beans sind:

  • Eine Enterprise-Bean enth√§lt normalerweise Gesch√§ftslogik die auf den Daten des Gesch√§ftes operiert
  • Die Instanzen einer EJB werden zur Laufzeit durch einen Container verwaltet.
  • Eine EJB kann zur Deployment-Zeit ver√§ndert werden, indem man ihre Umgebungsvariablen ver√§ndert.
  • Verschiedene Serviceinformationen, wie beispielsweise Transaktionen und Sicherheitsattribute, k√∂nnen zusammen mit der Gesch√§ftslogik einer EJB-Klasse anhand von Annotations oder XML-Deployment-Deskriptoren spezifiziert werden. Diese Meta-Informationen k√∂nnen von anderen Werkzeugen w√§hrend der Anwendungs-Zusammenstellung oder des Deployments genutzt werden.
  • Der Zugriff f√ľr Clients wird √ľber den Container verwaltet in dem die EJBs deployed wurden.
  • Wenn die EJB nur Dienste anbietet die durch die EJB-Spezifikation vorgegeben sind, dann kann diese Bean in jeglichen EJB-kompatiblen Container deployed werden. Speziellere Container k√∂nnen zus√§tzliche Dienste, die √ľber die Spezifikation hinaus gehen, anbieten. Eine EJB die auf solche zus√§tzlichen Dienste zugreift, kann nur in solche Container deployed werden, die einen solchen Service anbieten.
  • Eine EJB kann in eine zusammengestellte Anwendung eingef√ľgt werden, ohne das irgendwas am Quellcode ge√§ndert werden muss. Auch ein erneutes Kompilieren ist nicht notwendig.
  • Der Bean-Provider definiert die Client-Sicht einer EJB. Dies kann manuell geschehen, oder automatisch durch Anwendungs-Deployment-Werkzeuge. Die Client-Sicht wird weder durch den Container oder den Server beeinflusst in dem die Bean deployed wurde. Somit ist sichergestellt das sowohl die Bean als auch ihre Clients in verschiedene Umgebungen deployed werden k√∂nnen, ohne √Ąnderungen vorzunehmen oder neu zu kompilieren.

Dies ist eigentlich alles selbstverst√§ndlich und logisch, aber man muss ja mal klein anfangen ūüôā