Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java...

22
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans „A Java Bean is a reusable software component that can be visually manipulated in builder tools“ Visuelle Entwicklungsumgebung Komplett visuell Visuelle Verbindung mit Sourcecode Einfache Skriptsprache (z.B. JSP) Motivation Wieder verwendbare Software Komponenten Leicht veränderbar, da visuell bearbeitbar Kaum Unterschiede zu Java-Klassen Plattformunabhängig, da auf Java basierend Bestandteil des JDK: package java.beans

Transcript of Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java...

Page 1: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1

Java Beans

„A Java Bean is a reusable software component that can be visually manipulated in builder tools“ Visuelle Entwicklungsumgebung

Komplett visuell Visuelle Verbindung mit Sourcecode Einfache Skriptsprache (z.B. JSP)

Motivation Wieder verwendbare Software Komponenten

Leicht veränderbar, da visuell bearbeitbar Kaum Unterschiede zu Java-Klassen

Plattformunabhängig, da auf Java basierend Bestandteil des JDK: package java.beans

Page 2: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 2

Java Beans - Typen

Visuelle Beans ist visuell (GUI) darstellbar Buttons, Textfelder, etc. z.B. SWING, AWT Eigenschaften visuell-

veränderbar abgeleitet von

java.awt.Component

Nicht Visuelle Beans Hat keine Darstellung (GUI) Datenbank Anbindungs-

Beans, Sortier-Beans, Timer, etc

Eigenschaften Visuell-veränderbar

Platzhalter-Symbol in Entwicklungsumgebung

Page 3: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 3

Grundlagen von Java Beans

Selbstbeobachtung (Introspection) Analysierbarkeit von außen Analyse des eigenen Kontextes

Eigenschaften (Properties) Attribute beschreiben den Zustand des Beans Spezielle Zugriffmethoden (Property-Programmierkonventionen)

Ereignisse (Events) Auslösbarkeit von Ereignissen (Java 1.1 Modell)

Anpassung (Customization) Änderung von Eigenschaften visuell bzw. interaktiv

Speicherung (Persistenz) Speicher bzw. Ladbarkeit von Beans

Page 4: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 4

METHODEN

Java Bean Darstellung

JAVA BEAN

EIGENSCHAFTEN

EREIGNISSE

CUSTOMIZER

HDPERSISTENZ

BEANINFO

Page 5: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 5

Java Beans Design Vorschriften

Öffentlicher Konstruktor ohne Parameter

Implementation von java.io.Serializable

Javabeans Programmierkonventionen Get / Set – Methoden für Eigenschaften Add / Remove – Methoden für Ereignisse

„Multitasking Umgebungssicher“ Thread Sicherheit

Page 6: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 6

Eigenschaften (Properties) Zugriffsarten

Zugriff durch get bzw. set Methode getValue() bzw. setValue(1234)

Zugriff während der Anpassung (Customization) Visuelle Entwicklungsumgebung durch

Property Editor Property Sheet

Direkter Zugriff in Scriptumgebung (JSP etc) B.value = 1234

Zugriff als wäre es Variable Aufruf der set bzw. get methode implizit

Page 7: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 7

Eigenschaften (Properties) Typen

Einfache Eigenschaften (Simple Properties) int, string, boolean, etc.

Indizierte/Indexierte Eigenschaften (Indexed-Properties) Zusammenfassung gleicher Eigenschaften in Arrays

Gebundene Eigenschaften (Bound-Properties) Informierung der angemeldeten Komponenten über Änderung

eingeschränkte Eigenschaften (Constraint-Properties) vor Änderung Informierung der angeschlossen Komponenten die

evtl. „Veto“ einlegen können

Page 8: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 8

Simple-Properties (Einfache Eigenschaften)

Programmierkonvention public <PropertyTyp> getXXX() public void setXXX

(<PropertyTyp> wert )

Nicht notwendigerweise set und get Methode

Zugriffs- & Integritätsprüfung in diesen Methoden möglich

Zugriff auf Eigenschaften nur durch diese Methoden

Bei boolschen Wert isXXX() möglich

RECHTECK

Color Farbe;

getFarbe();

setFarbe(Color neu);

Name

Eigenschaften

Methoden

Page 9: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 9

Indexed-Properties (Indizierte Eigenschaften)

Programmierkonvention public <PropertyTyp> [ ] getXXX() public <PropertyTyp> getXXX( int index ) public void setXXX( <PropertyTyp> [ ]

werte ) public void setXXX( <PropertyTyp> wert,

int index )

Wie Einfache-Eigenschaften

Index um Zugriff auf Elemente des Feldes zu bekommen

DOPPELBOX

Color[ ] Farben;

…getFarben();

setFarben(Color[ ] neu);

getFarben(int index)

setFarben(Color neu, int index)

Page 10: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 10

Ereignisse (events)

BEAN

addXXListener (…)

Objekt

Objekt

Objekt

Trägt sich einEVENT ObjEVENT ObjEVENT Obj

Page 11: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 11

Ereignisse (events)

Basiert auf dem Java Event Model Sender / Listener - Modell Bean muss Listener verwalten

z.B. durch java.util.Vector

Programmierkonvention für Multicast (mehrere Listener) public void add<EventListenerType>(<EventListenerType> listener) public void remove<EventListenerType>(<EventListenerType> list.)

Unicast (ein Listener) public void add<EventListenerType>(...) throws

java.util.TooManyListenersException

Page 12: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 12

Bound-Properties (Gebundene Eigenschaften)

SENDER

Property -Changesupport changes;

Object wert;

EMPFÄNGER

addP.C.Listener()Trägt sich ein

Implementiert Property-

ChangesListener

propertyChange (ChangeEvent evt)

getWert()

setWert(Obj new)

Feuert Event

Page 13: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 13

Bound-Properties

Basiert auf Simple bzw. Indexed Eigenschaften set / get Methode vorhanden Funktionsumfang erweitert

PropertyChangeSupport wird instanziert add/removePropertyChangeListener werden implementiert mehre interessierte Listener können sich eintragen (Multicast)

(Unicast) auch möglich

Set Methode der Eigenschaft informiert Listener ruft firePropertyChange Methode auf

feuert Event nach Änderung des internen Zustandes

Page 14: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 14

Constained-Properties(Eingeschränkte Eigenschaften)

SENDER

Vetoable-Changesupport changes;

Object wert;

addV.CListener

getWert()

EMPFÄNGER

vetoableChange (ChangeEvent evt)

Implementiert vetoable-

ChangeListener

getWert()

setWert(Obj new)

Feuert Event entscheidet ob Änderung

stattfinden darf

Page 15: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 15

Constained-Properties

Listener können „VETO“ zu Änderung einlegen Sonst wie Bounded Properties Listener können „Veto“ einlegen zu Änderung

set Methode wirft PropertyVetoException

VetoableChangeSupport wird instanziert add / removeVetoableChangeListener wird implementiert Multicast

Set Methode informiert eingetragene Listener Meistens gekoppelt mit Gebundenen Eigenschaften „feuert“ Event vor Änderung des internen Zustandes

Page 16: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 16

Selbstbeobachtung (Introspection)

Entwicklungsumgebung analysiert Bean benutzt „low level reflection“ erhält Informationen über öffentliche Schnittstellen der Bean Programmierkonventionen nötig um

Eigenschaften Ereignisse Methoden

unterscheiden zu können

Auch Angabe der Schnittstellen durch Programmierer möglich BeanInfo Klasse

Page 17: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 17

Anpassung (Customization)

Property-sheet Änderungen der Eigenschaften visuell über get/set – Methoden realisiert

Property-Editoren in meisten IDEs vorgefertigte Editoren für Standard Typen

color, string, integer, boolean, etc

kann auch bei eigenen Typen selbst erstellt werden

Customizer komplexe Bean, z.B. Tabellenkalkulation z.B. Wizard, der das Anpassen der Bean erleichtert

kann jede gewünscht GUI Funktionalität haben

Page 18: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 18

Persistenz (Speicherung)

Beans können ihren internen Zustand speichern implementieren java.io.Serializable Speicherung z.B. im XML Format java.beans beinhaltet Methoden die dies leisten

java.beans.XMLdecoder

Beans können sich aus einer Datei selbst initialisieren Bean wird in einem Builder angepasst und gespeichert aus dieser Datei kann der ursprünglichen Zustand der Bean

wiederhergestellt werden

Page 19: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 19

Speicherung der Beans

Speicherung in JAR (Java ARchive) Manifest Datei nötig (.mf)

beschreibt was in der JAR Datei steht

gehört zum JDK

Visuelle Entwicklungsumgebungen für Beans öffnen JAR Datei analysieren Manifest bindet Beans aus JAR Datei ein

Page 20: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 20

Arbeiten mit Java Beans

Kaufen oder Programmieren der Beans

Zusammenstellung der Beans Bean-Builder Von Hand programmiert

Speichern der Zusammenstellung durch Builder Serialisierung der internen Zustände der Beans Speicherung der Verbindungen

Eingetragene Listener, etc. Aufgabe des Builders

Page 21: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 21

Java Bean Builder

Sun Beanbuilder 1.0 beta Frei erhältlich Eher zu Demonstrations-Zwecken geeignet

Borland JBuilder Personal Edition frei erhältlich Komplette Entwicklungsumgebung Viele Komponenten vordefiniert Entwicklung jeder Art von Java-Programmen möglich

Page 22: Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 22

Vor-/Nachteile von JavaBeans

Vorteile „write once, run

everywhere“ Introspektion Umfangreiche Bibliotheken Dynamisches Nachladen

von Klassen

Nachteile kein Komponentenmodell,

sondern … Nicht echtzeitfähig Interpretierter bytecode

Langsam

Kaum Unterstützung bei der Komponenten-Erzeugung