JavaBeans sind Software-Komponenten für die Programmiersprache Java. JavaBeans entwickelten sich aus der Notwendigkeit heraus, GUI-Klassen (AWT, Swing) einfach zu instanziieren und mittels RMI zu übertragen. JavaBeans werden auch als Container zur Datenübertragung verwendet. Daher zeichnen sich alle JavaBeans durch folgende Eigenschaften aus:

Auf Grund dieser Eigenschaften eignen sich JavaBeans auch als Datenobjekte für Persistenzframeworks (siehe Enterprise JavaBeans).

Überblick

Bearbeiten

Eine JavaBean ist eine Java-Klasse, die einem Komponentenmodell entspricht, um automatisierten Zugriff auf ihre Eigenschaften (Membervariablen) und Operationen (Methoden) zu erlauben. Das Java-SDK stellt Anwendungsentwicklern die Bean-API (das Paket java.beans) zur Verfügung, um beispielsweise eine Kurzbeschreibung einer Bean anzuzeigen. Das JavaBean-Komponentenmodell wurde vor allem entwickelt, um eine einheitliche API zur einfacheren Entwicklung von GUI-Buildern bereitzustellen. Beans realisieren eine verbesserte Serialisierung und damit Netzwerkfähigkeit, Wiederverwendbarkeit, Portabilität und Interoperabilität.

Eine Komponente ist nur dann eine JavaBean, wenn sie der JavaBeans API Specification entspricht, die von der JavaBeans Component Architecture spezifiziert wird.

Instanziierung

Bearbeiten

Eine JavaBean besitzt immer einen Konstruktor ohne Parameter (Standardkonstruktor). Dies ermöglicht eine standardisierte Instanziierung, beispielsweise einer Schaltfläche:

JButton button = (JButton) Class.forName("javax.swing.JButton").newInstance();

Eine Alternative dieser Instanziierung ist:

JButton button = new JButton();

Zugriffsoperationen

Bearbeiten

Alle Eigenschaften einer Bean wahren das Geheimnisprinzip (information hiding). Der Zugriff ist über spezielle Operationen möglich, die bestimmten Konventionen entsprechen müssen.

Für eine Eigenschaft foo heißt die lesende Operation (Getter) getFoo. Bei booleschen Variablen ist alternativ auch isFoo möglich, was allgemein vorgezogen wird. Die schreibende Operation (Setter) heißt setFoo. Indizierte Eigenschaften besitzen jeweils zwei Getter und Setter: Einen für die Gesamtheit, einen für einen bestimmten Index. Eine schreibgeschützte Eigenschaft besitzt keinen (öffentlichen) Setter.

Introspektion

Bearbeiten

Introspektion ist der Mechanismus, eine Bean auf ihre Eigenschaften, Ereignisse (Events) und Operationen zu analysieren. Die API bietet dabei Möglichkeiten, die eine zusätzliche Unterstützung zur Introspektion von Seiten des Bean-Entwicklers unnötig machen. Beans können per Reflexion untersucht werden, wenn sie sich an die in der Spezifikation definierten Konventionen halten.

Ferner gibt es die Möglichkeit, für jede Bean eine BeanInfo-Klasse zu schreiben, die Informationen über die Bean, ihre Eigenschaften und Operationen enthält. Die Klasse java.beans.Introspector sucht erst nach expliziten Informationen und vervollständigt diese durch Reflexion.

Weiteres

Bearbeiten

Bei der Änderung einer Bound Property (gebundene Eigenschaft) müssen Objekte über die Änderung informiert werden. Bei Constrained Properties können diese zudem ein Veto einlegen. Die Bean-API stellt hierfür ein Event Delegation Model bereit.

Es können grafische Editoren und Customizer für bestimmte Datentypen und Beans erstellt und durch sie Eigenschaften bequem angepasst werden.

Es gibt einen Persistenzmechanismus für Beans. So können Beans beispielsweise als XML-Dokument gespeichert werden.

Literatur

Bearbeiten
Bearbeiten

📚 Artikel Terkait di Wikipedia

Java-Laufzeitumgebung

Die Java-Laufzeitumgebung (englisch Java Runtime Environment, kurz JRE) ist die Laufzeitumgebung der Java-Technik. Mit ihr werden Programme (Java-Anwendungen)

Jakarta Server Pages

definierten Java-Bean. <jsp:getProperty name="myBean" property="lastChanged" /> jsp:useBean diese Aktion erstellt oder verwendet eine Java-Bean wieder. Ist

Jakarta EE

früher Java Platform, Enterprise Edition (Java EE), ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten

Java (Programmiersprache)

Bestandteil der Java-Technologie – diese besteht grundsätzlich aus dem Java-Entwicklungswerkzeug (JDK) zum Erstellen von Java-Programmen und der Java-Laufzeitumgebung

Jakarta Enterprise Beans

Jakarta Enterprise Beans (früher Enterprise JavaBeans, EJB) sind standardisierte Komponenten innerhalb der Java-EE-Plattform. Sie vereinfachen die Entwicklung

Java Archive

Name: javax/swing/JRadioButtonMenuItem.class Java-Bean: True Name: javax/swing/JList.class Java-Bean: True Dem Hauptabschnitt in diesem Beispiel lässt

Jakarta Faces

mit Java geschrieben. Die eigentliche Logik der Applikation findet im Model statt. Bei JSF sind die Model-Komponenten sogenannte JavaBeans (Java-Klassen)

NetBeans IDE

NetBeans IDE (oft auch nur NetBeans genannt) ist eine freie integrierte Entwicklungsumgebung, die komplett in der Programmiersprache Java geschrieben wurde