490 likes | 723 Vues
Java Beans. -Einleitung und Geschichte (Jakob Burchardt) -Merkmale von Java Beans (Dirk Schäfer) -Anwendungsbeispiel/BDK (Thorsten Arendt) -Vorstellung BeanBuilder (Björn Agel) -Einbindung in IDE/NetBeans (Torsten Neu) -Zusammenfassung (Tim Dörnemann).
E N D
Java Beans -Einleitung und Geschichte (Jakob Burchardt) -Merkmale von Java Beans (Dirk Schäfer) -Anwendungsbeispiel/BDK (Thorsten Arendt) -Vorstellung BeanBuilder (Björn Agel) -Einbindung in IDE/NetBeans (Torsten Neu) -Zusammenfassung (Tim Dörnemann)
Allgemeines und Geschichtliches • Was sind Beans? • Definition der Firma SUN Microsystems:Ein Java-Bean ist eine wiederverwendbare Softwarekomponente, die in einer Entwicklungsumgebung visuell bearbeitet werden kann. • Das Komponentenmodell wurde von Sun in Kooperation mit führenden Industrieunternehmen entwickelt (Apple, Borland, IBM, Netscape, Microsoft) • Es wurde am 4 September `96 im Internet vorgestellt. Die erste „vernünftige“ Version erschien mit Java2 (JDK 1.2) • Motiviert wurden Beans wahrscheinlich durch die grafischen Komponenten, die Visual Basic mit den Werkzeugen einer visuellen IDE bereitgestellt hat
Visuelle IDE • IDE = Integrated Development Environment • Beispiele: UltraEdit, Eclipse, IntelliJ, BlueJ, … • Visuelle IDEs beinhalten Werkzeuge zum „Zusammenklicken“ einer grafischen Oberfläche • Sie ersparen dem Programmierer stupide Arbeit, da er das Design seiner Anwendung mit wenigen Mausklicks bestimmen und verändern kann • Beispiele für visuelle IDEs: Netbeans/Sun Studio ONE, JBuilder (Borland/Inprise)
Beans Eigenschaften
Und was haben Beans damit zu tun? • Beans können mit visuellen Entwicklungswerkzeugen erzeugt, zusammengestellt und entwickelt werden • Die Komponenten (z.B. JButton, JTextField), mit denen man in einer IDE Anwendungen gestaltet, sind Beans • Ihre Eigenschaften können visuell angepasst werden, d.h. ohne manuelle Änderung des Quellcode
Merkmale von JavaBeans (1)Was zeichnet eine Bean aus ? • Eine JavaBean ist eine Java-Klasse, die sich für ihre Umwelt über Methoden, Eigenschaften und Ereignisse verfügbar macht • Es existieren dazu Vereinbarungen, wie Methoden, Eigenschaften und Ereignisse bekannt gemacht werden
Merkmale von JavaBeans (2) Specification • Das Bean-Modell sieht folgende Features vor: • Eigenschaften (properties) • Ereignisse (events) • Anpassung (customization) • Persistenz (persistence) • Metainformation (introspection) • Verpackung (packaging) • Bauplan: http://java.sun.com/products/javabeans/docs/spec.html
Eigenschaften(properties) • Kein direkter Zugriff möglich (Black-Box) • Mittels Methoden ist die Manipulation der Daten gestattet – diese unterliegen der Namenskonvention (set-/get-/is-) • Typen: einfach , indiziert(indexed), gebunden(bound), eingeschränkt(constrained) • Bauplan: http://java.sun.com/products/javabeans/docs/spec.html
Ereignisse (events) • Beans schicken Events und reagieren auf sie • (Art: asynchrone Kommunikation) • Es existieren Interfaces und Klassen für Source, Listener und Eventobject(quelle+daten) • Visuelle Verknüpfung möglich („Verdrahtung“) • Bauplan: http://java.sun.com/products/javabeans/docs/spec.html
Verdrahtung / Komposition • Hinsichtlich der Interaktion kann folgendes passieren: • Event löst Methode in Zielkomponente aus (Event/Methode) • Event setzt Eigenschaft in Zielkomponente (Event/Property) • Änderung einer gebundenen Eigenschaft löst Methode in Zielkomponente aus (Property/Method) • Änderung einer gebundenten Eigenschaft ändert eine Eigenschaft in Zielkomponente (Property/Property) • Bauplan: http://java.sun.com/products/javabeans/docs/spec.html
Namenskonvention • Die Namenskonvention gilt für die Methoden der Eigenschaften und der Ereignisse ! • Ansonsten gibt es keine Vorschriften der Namensgebung für die (restlichen) Methoden • Und damit keine Unterschiede zu denen einer normalen Java-Klasse • Bauplan: http://java.sun.com/products/javabeans/docs/spec.html
Ein kleines Beispiel Erzeugt wird eine Lampe, die wahlweise an- und ausgeschaltet werden kann.
Schritt 1 - Serialisierung Die Bean muss serialisierbar sein !!!
Schritt 2 - properties Die veränderbaren Eigenschaften (properties) müssen geschützt werden.
Schritt 3 - Konstruktor Der Konstruktor darf keine Argumente enthalten (leerer Konstruktor)
Schritt 4 - Methoden Getter-, Setter- und Is-Methoden gemäß dem property design pattern
Schritt 4 - Methoden Die Setter-Methode:
Schritt 5 – Bean-Info-File • Abgeleitet von der Klasse SimpleBeanInfo aus dem Paket java.beans • Klassenname: LampeBeanInfo • Informationen über • Öffentliche Methoden der Bean • Benutzte Icons • Eventuelle Hilfstexte
Schritt 6 - Manifest • Dateiname: Lampe.mf • Deklarierung des class-File als Bean
Schritt 7 – Das JAR-Archiv • Erzeugung auf Befehlszeilenebene • Inhalt : • Class-Files • Bilder, Sounds etc. • Manifest-File
Das BDK • Bean Development Kit • Referenzplattform für die Demonstration des Bean-Konzeptes • Frei Verfügbar unter http://java.sun.com • Keine vollwertige Test- und Entwicklungsumgebung !!!
Bean Builder (1) • Derzeitige Version: 1.0 Beta • Weiterentwicklung der original „Bean Box“ des BDK • Demonstriert das Erstellen einfacher Applikationen ohne auch nur eine Zeile Source-Code zu schreiben
Bean Builder (2) • Folgende „neue“ Technologien werden mit Hilfe des Bean Builders veranschaulicht, bzw. demonstriert: • Long-Term Persistence (LTP) • Dynamic event adapter generation • javax.swing.Action Interface • Eigenschaften Editor für Swingkomponenten • Anwendung des neuen SpringLayouts
Bean Builder (3) • Erstellen einer kleinen Applikation:
LTP XML-Format (1) <?xml version="1.0" encoding="UTF-8" ?> <java version="1.4.0-rc" class="java.beans.XMLDecoder"> <object class="javax.swing.JFrame"> <void property="size"> <object class="java.awt.Dimension"> <int>315</int> <int>326</int> </object> </void> <void id="JPanel0" property="contentPane"> <void method="add"> <object id="JScrollPane0" class="javax.swing.JScrollPane"> <void property="preferredSize"> <object class="java.awt.Dimension"> <int>243</int> <int>149</int> </object> </void>…
LTP XML-Format (2) • Code zum Lesen der XML Datei ausserhalb von Bean Builder: try { InputStream is = new BufferedInputStream( new FileInputStream("tutorial.xml")); XMLDecoder d = new XMLDecoder(is); Object o = d.readObject(); } catch (IOException ex) { System.out.println(ex.getMessage()); }
Java-Beans Das Einbinden selbst erstellter Beans in entsprechende Entwicklungsumgebungen ist meist sehr einfach zu realisieren. Man benötigt hierzu einfach die JAR-File.
Java-Beans • Ein JAR-Archiv besteht aus: • - Class-Dateien • - Dem gesicherten JavaBean-Zustand • Dateiendung .ser . Nicht unbedingt • erforderlich. • - Andere Ressource-Dateien wie z. B. • Text, Graphik, Sound oder Videos.
Java-Beans - Hilfsdateien im HTML-Format, die die JavaBean beschreiben. - Informationen über die Internationalisierung, die es der JavaBean ermöglichen, sich den lokalen Bräuchen anzupassen.
Java-Beans - Zusätzlich eine Manifest-Datei, die den Inhalt des Archivs genauer beschreibt.
Java-Beans Beispiel einer Einbindung mit NetBeans
Java-Beans NetBeans ist eine IDE für verschiedene Sprachen Es ist Plattformunabhängig ( in Java ) Weiterhin ist es OpenSource ( nicht GPL sondern SPL) http://netbeans .org
Java-Beans Wie man nun mit den Beans arbeitet
Zusammenfassung • Vorteile • Das Entwicklungspaket von Sun (BeanBuilder) ist frei verfügbar • Es gibt viele freie sowie kommerzielle JavaBeans • Einfach zu programmieren, da 100% auf Java basierend • Möglichkeit der Kommunikation mit ActiveX-Komponenten • Grafische Verbindung von Komponenten bereits im Sprachumfang de facto normiert
Nachteile • Geschwindigkeit: Beans sind in Java geschrieben und haben die gleichen Geschwindigkeitsprobleme • Keine Brücke von ActiveX in Richtung JavaBeans (wie so oft bei Microsoft ;-)) • Keine strenge Trennung von Interface und Implementation
Produkte und Hersteller • JavaBeans Komponentenbibliotheken (im JDK integriert) • WebSphere Studio von IBM • ILOG Jviews von Firma ILOG Deutschland • JClass BWT von Firma KL Group • Jsuite von Infragistics
Literatur • Open JavaStephan Fischer, Abdulmotaleb El Saddik Springer Verlag • Komponenten in Java • Claudia Piemont • dpunkt Verlag • http://java.sun.com/beans • Insbesondere: JavaBeans Referenz (~120 Seiten PDF) • http://java.sun.com/products/ejb/ • http://www.java.net