Oechsle | Java-Komponenten | E-Book | sack.de
E-Book

E-Book, Deutsch, 320 Seiten

Oechsle Java-Komponenten

Grundlagen, prototypische Realisierung und Beispiele für Komponentensysteme
1. Auflage 2013
ISBN: 978-3-446-43591-9
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: 1 - PDF Watermark

Grundlagen, prototypische Realisierung und Beispiele für Komponentensysteme

E-Book, Deutsch, 320 Seiten

ISBN: 978-3-446-43591-9
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: 1 - PDF Watermark



Immer mehr Softwareentwicklungen bauen heute auf dem Komponentenprinzip auf.
Dieses Lehrbuch ermöglicht den Lesern, sich selbstständig in Komponenten-Frameworks einzuarbeiten bzw. eigene Frameworks zu entwickeln. Ziel ist es, eine umfassende Vorstellung darüber zu vermitteln, was Komponenten-Software im Java-Umfeld bedeutet.
Zuerst werden jene Java-Grundlagen, die für die Komponentenprogrammierung essentiell sind, vermittelt. Anhand eines selbstentwickelten Beispiels werden im weiteren Verlauf die Grundprinzipien von Komponentensystemen herausgearbeitet und erklärt. Der dritte Teil erläutert ausgewählte Java-Komponentensysteme. In diesem Zusammenhang stellt das Buch konkrete Beispiele zu Eclipse, Enterprise Java Beans, Android, Servlets sowie OSGi vor.
Am Ende des Buches sind die Leser in der Lage, sowohl Komponenten für die im Buch behandelten Frameworks als auch eigene Komponenten-Frameworks zu entwickeln. Das Lehrbuch richtet sich an Studierende der Informatik und verwandter Studiengänge sowie bereits im Berufsleben stehende Java-Software-Entwicklerinnen und Entwickler.

Prof. Dr. Rainer Oechsle lehrt an der Hochschule Trier am Fachbereich Informatik und vertritt die Fachgebiete Rechnernetze und verteilte Systeme.
Oechsle Java-Komponenten jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


1;Vorwort und Einleitung;7
2;Inhalt;11
3;Teil 1: Java-Grundlagen;17
3.1;1 Generics;19
3.1.1;1.1 Einleitung und Motivation;19
3.1.2;1.2 Erste Beispiele;21
3.1.3;1.3 Mehrere Typparameter;24
3.1.4;1.4 Einschränkung parametrisierter Typen;24
3.1.5;1.5 Umsetzung des Generics-Konzepts;25
3.1.6;1.6 Typenkompatibilität und Wildcards;27
3.1.6.1;1.6.1 Rohe Typen;29
3.1.6.2;1.6.2 Wildcards;29
3.1.7;1.7 Vererbung;32
3.1.8;1.8 Generische Methoden;34
3.1.9;1.9 Überladen und Überschreiben;37
3.1.10;1.10 Fazit;40
3.2;2 Reflection;41
3.2.1;2.1 Grundlagen von Reflection;42
3.2.1.1;2.1.1 Die Klasse Class;42
3.2.1.2;2.1.2 Die Klasse Field;44
3.2.1.3;2.1.3 Die Klasse Method;45
3.2.1.4;2.1.4 Die Klasse Constructor;46
3.2.1.5;2.1.5 Beispiel;47
3.2.1.6;2.1.6 Anwendungen;48
3.2.2;2.2 Reflection mit Generics;50
3.2.2.1;2.2.1 Reflection-Typsystem;51
3.2.2.2;2.2.2 Zusätzliche Methoden in Reflection-Klassen;53
3.2.2.3;2.2.3 Beispiel;53
3.3;3 Annotationen;59
3.3.1;3.1 Deklaration und Nutzung von Annotationen;59
3.3.2;3.2 Meta-Annotationen;62
3.3.3;3.3 Regeln für Annotationsdeklarationen;64
3.3.4;3.4 Reflection für Annotationen;65
3.3.5;3.5 Beispiel;69
3.3.6;3.6 Anwendung: Dependency Injection;71
3.4;4 Dynamische Proxies;75
3.4.1;4.1 Statische Proxies;76
3.4.2;4.2 Erzeugung dynamischer Proxies mit Reflection;81
3.4.3;4.3 Erzeugung dynamischer Proxies mit CGLIB;85
3.5;5 ClassLoader und Hot Deployment;90
3.5.1;5.1 Klassenladen in Java;90
3.5.2;5.2 ClassLoader;92
3.5.3;5.3 Beispiele;94
3.5.3.1;5.3.1 Hot Deployment;94
3.5.3.2;5.3.2 Gleichzeitige Nutzung mehrerer Versionen einer Klasse;96
4;Teil 2: Java-Komponenten;101
4.1;6 Prototypische Implementierung eines Komponentensystems;103
4.1.1;6.1 Beispielkomponenten;104
4.1.1.1;6.1.1 Komponente Nr. 1;104
4.1.1.2;6.1.2 Komponente Nr. 2;107
4.1.1.3;6.1.3 Komponente Nr. 3;109
4.1.1.4;6.1.4 Rückblick;112
4.1.1.5;6.1.5 Variation der Komponentenbeispiele;113
4.1.2;6.2 Framework;115
4.1.2.1;6.2.1 Struktur des Komponenten-Frameworks;115
4.1.2.2;6.2.2 Die Klasse ComponentManager;117
4.1.2.3;6.2.3 Die Klasse DeploymentDirectoryListener;122
4.1.2.4;6.2.4 Restliche Klassen;123
4.2;7 Komponenten und Komponentensysteme;125
4.2.1;7.1 Modularität als grundlegendes Prinzip von Komponentensystemen;125
4.2.2;7.2 Definitionen für Software-Komponenten;127
4.2.3;7.3 Eigenschaften von Java-Komponenten;129
4.2.4;7.4 Beispiele und Gegenbeispiele für Komponentensysteme;132
4.2.4.1;7.4.1 Beispiele aus dem Java-Umfeld;132
4.2.4.2;7.4.2 Gegenbeispiele aus dem Java-Umfeld;133
4.2.4.3;7.4.3 Beispiele aus dem Nicht-Java-Umfeld;133
5;Teil 3: Beispiele für Java- Komponentensysteme;135
5.1;8 Java Beans;137
5.1.1;8.1 Komponentenmodell;137
5.1.2;8.2 Gebundene Eigenschaften und Eigenschaften mit Vetomöglichkeit;139
5.1.3;8.3 BeanInfo;142
5.1.4;8.4 Software-Werkzeuge;144
5.1.5;8.5 Bewertung;145
5.2;9 OSGi;147
5.2.1;9.1 Komponentenmodell;147
5.2.2;9.2 Erstes Beispiel-Bundle;149
5.2.3;9.3 Zweites Beispiel-Bundle;153
5.2.4;9.4 Variationen der Beispiel-Bundles;156
5.2.5;9.5 Hot Deployment;158
5.2.6;9.6 Lebenszyklus von Komponenten;162
5.2.7;9.7 BundleContext und Bundle;163
5.2.8;9.8 Erweiterungen von OSGi;164
5.2.8.1;9.8.1 Declarative Services;164
5.2.8.2;9.8.2 Zusätzliche Erweiterungen;168
5.2.9;9.9 Versionen von Komponenten;169
5.2.10;9.10 Bewertung;170
5.3;10 Eclipse;172
5.3.1;10.1 Architektur von Eclipse;173
5.3.1.1;10.1.1 Eclipse-Funktionsgruppen;173
5.3.1.2;10.1.2 Workspace und Workbench;174
5.3.1.3;10.1.3 Erweiterungspunkte (Extension Points);175
5.3.2;10.2 Komponentenmodell von Eclipse;176
5.3.3;10.3 Erstes Eclipse-Plugin;177
5.3.4;10.4 Weitere Eclipse-Plugins;183
5.3.5;10.5 Erweiterung der Eclipse-Plugins;184
5.3.6;10.6 Klassenladen bei Bedarf;185
5.3.7;10.7 Bewertung;187
5.4;11 Applets;188
5.4.1;11.1 Erstes Beispiel;188
5.4.2;11.2 Zweites Beispiel;191
5.4.3;11.3 Bewertung;194
5.5;12 Servlets;195
5.5.1;12.1 Verzeichnisstruktur eines Web-Servers;195
5.5.2;12.2 Komponentenmodell;196
5.5.2.1;12.2.1 Verzeichnisstruktur einer Komponente;196
5.5.2.2;12.2.2 Die Konfigurationsdatei web.xml;198
5.5.2.3;12.2.3 Java-Code einer Web-Komponente;199
5.5.3;12.3 Erste Beispielkomponente;203
5.5.4;12.4 Zweite Beispielkomponente;207
5.5.5;12.5 Bewertung;212
5.6;13 Enterprise Java Beans (EJB);214
5.6.1;13.1 Mehrschichtige Architekturen;214
5.6.2;13.2 Interaktion mit EJB-Komponenten;216
5.6.3;13.3 Klassenarten einer EJB-Komponente;218
5.6.4;13.4 Session Beans;218
5.6.4.1;13.4.1 Stateful Session Beans;218
5.6.4.2;13.4.2 Stateless Session Beans;219
5.6.4.3;13.4.3 Singleton Session Beans;220
5.6.5;13.5 Komponentenmodell;221
5.6.6;13.6 Erste EJB-Beispielkomponente;222
5.6.6.1;13.6.1 Server-Seite;222
5.6.6.2;13.6.2 Client-Seite;224
5.6.7;13.7 Zweite EJB-Beispielkomponente;227
5.6.8;13.8 Dritte EJB-Beispielkomponente (Call-By-Value);230
5.6.9;13.9 Vierte EJB-Beispielkomponente (Call-By-Reference);232
5.6.9.1;13.9.1 Getrennte EJB-Jar-Dateien;232
5.6.9.2;13.9.2 Gemeinsame Ear-Datei mit Dependency Injection;235
5.6.9.3;13.9.3 Lokale Schnittstellen;236
5.6.10;13.10 Entities und Transaktionssteuerung;237
5.6.11;13.11 Funktionen eines EJB-Containers;240
5.6.12;13.12 Bewertung;241
5.7;14 Spring;242
5.7.1;14.1 Komponentenmodell;242
5.7.2;14.2 Erste Spring-Anwendung: Singletons und Prototypes;244
5.7.3;14.3 Zweite Spring-Anwendung: Dependency Injection;246
5.7.4;14.4 Factory-Methoden und Factory-Beans;248
5.7.5;14.5 Autowiring;248
5.7.6;14.6 Dritte Spring-Anwendung: Konfiguration durch Annotationen;249
5.7.7;14.7 Vierte Spring-Anwendung: BeanPostProcessor;250
5.7.8;14.8 Aspektorientierte Programmierung (AOP);253
5.7.9;14.9 Fünfte Spring-Anwendung: AOP;254
5.7.10;14.10 Bewertung;257
5.8;15 Ereignisbusse;259
5.8.1;15.1 Grundkonzepte von Ereignisbussen;259
5.8.2;15.2 Komponentenmodell von RRiBbit;261
5.8.3;15.3 Erste RRiBbit-Anwendung;263
5.8.4;15.4 Zweite RRiBbit-Anwendung;266
5.8.5;15.5 Bewertung;269
5.9;16 Android;271
5.9.1;16.1 Software-Architektur von Android;272
5.9.2;16.2 Prinzipien der Ausführung von Apps;273
5.9.3;16.3 Komponentenmodell;277
5.9.4;16.4 Anwendung mit einer Activity;279
5.9.4.1;16.4.1 Activity mit programmierter Oberfläche;279
5.9.4.2;16.4.2 Activity mit XML-definierter Oberfläche;281
5.9.5;16.5 Anwendung mit mehreren Activities;284
5.9.5.1;16.5.1 Start einer Activity mit explizitem Intent;284
5.9.5.2;16.5.2 Start einer Activity mit implizitem Intent;286
5.9.5.3;16.5.3 Activity mit Resultat;287
5.9.5.4;16.5.4 Variationen;289
5.9.6;16.6 Lebenszyklus von Activities;290
5.9.7;16.7 Service und Activity im Vergleich;292
5.9.8;16.8 Anwendung mit einem ungebundenen Service;293
5.9.9;16.9 Anwendung mit einem gebundenen Service;296
5.9.9.1;16.9.1 AIDL-Schnittstelle;296
5.9.9.2;16.9.2 Implementierung einer AIDL-Schnittstelle;296
5.9.9.3;16.9.3 Realisierung eines gebundenen Service;297
5.9.9.4;16.9.4 Nutzung eines gebundenen Service;298
5.9.9.5;16.9.5 Parameterübergabe durch Call-By-Value-Result;300
5.9.9.6;16.9.6 Parameterübergabe durch Call-By-Reference;302
5.9.10;16.10 Bewertung;305
6;Literatur;307
7;Index;309


Teil 1: Java-Grundlagen:
- Generics
- Reflection
- Annotationen
- Dynamische Proxies
- Hot Deployment
Teil 2: Grundlagen der Programmierung von Komponenten in Java
- Definition von Komponenten
- wesentliche Eigenschaften
- ein einfaches selbst entwickeltes Komponenten-Framework
Teil 3: Beispiele für Komponenten-Systeme:
- Java Beans
- OSGi
- Eclipse
- Servlets / JSP
- Enterprise Java Beans (EJB)
- Android


Prof. Dr. Rainer Oechsle lehrt an der Hochschule Trier am Fachbereich Informatik und vertritt die Fachgebiete Rechnernetze und verteilte Systeme.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.