Privacy Policy Cookie Policy Terms and Conditions JavaBeans - Wikipedia

JavaBeans

aus Wikipedia, der freien Enzyklopädie

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

Aufgrund dieser Eigenschaften eignen sich JavaBeans auch als Datenobjekte für Persistenzframeworks. (Siehe Enterprise JavaBeans)

Inhaltsverzeichnis

[Bearbeiten] Überblick

Eine JavaBean ist eine Java-Klasse, die einem Komponentenmodell entspricht, um automatisierten Zugriff auf ihre Eigenschaften (Membervariablen) und Operationen 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 bereit zu stellen. 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, welche die JavaBeans Component Architecture spezifiziert.

[Bearbeiten] Instanzierung

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

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

Eine Alternative dieser Instanzierung funktioniert wie folgend ( vorausgesetzt die benötigten packages sind importiert ):

JButton button = new JButton();

( benötigt folgenden import: import javax.swing.*; oder auch einfach import javax.swing.JButton; )

[Bearbeiten] Zugriffsoperationen

Alle Eigenschaften einer Bean wahren das Geheimnisprinzip. 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 (außer bei booleschen Variablen isFoo), die schreibende (Setter) 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.

[Bearbeiten] Introspektion

Introspektion ist der Mechanismus, eine Bean auf ihre Eigenschaften, 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 Introspector sucht erst nach expliziten Informationen und vervollständigt diese durch Reflexion.

[Bearbeiten] Weiteres

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 graphische Editoren und Customizer für bestimmte Datentypen und Beans erstellt werden. Mit diesen können Eigenschaften bequem angepasst werden.

Es gibt einen Persistenzmechanismus für Beans. Diese können als XML-Dokument gespeichert werden. (siehe XMLEncoder)

Um eine Java-Bean für einen visuellen Editor einsatzfähig zu machen, muss die Class-Datei in eine Jar-Datei gepackt werden, die auch eine Manifest-Datei (.mf) enthalten muss.

[Bearbeiten] Literatur

  • Olaf Zwintzscher: Software-Komponenten im Überblick, W3L, 2004, ISBN 3937137602

[Bearbeiten] Weblinks

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -