Suchen und Finden
Service
Java-Komponenten - Grundlagen, prototypische Realisierung und Beispiele für Komponentensysteme
Rainer Oechsle
Verlag Carl Hanser Fachbuchverlag, 2013
ISBN 9783446435919 , 320 Seiten
Format PDF, OL
Kopierschutz Wasserzeichen
Vorwort und Einleitung
7
Inhalt
11
Teil 1: Java-Grundlagen
17
1 Generics
19
1.1 Einleitung und Motivation
19
1.2 Erste Beispiele
21
1.3 Mehrere Typparameter
24
1.4 Einschränkung parametrisierter Typen
24
1.5 Umsetzung des Generics-Konzepts
25
1.6 Typenkompatibilität und Wildcards
27
1.6.1 Rohe Typen
29
1.6.2 Wildcards
29
1.7 Vererbung
32
1.8 Generische Methoden
34
1.9 Überladen und Überschreiben
37
1.10 Fazit
40
2 Reflection
41
2.1 Grundlagen von Reflection
42
2.1.1 Die Klasse Class
42
2.1.2 Die Klasse Field
44
2.1.3 Die Klasse Method
45
2.1.4 Die Klasse Constructor
46
2.1.5 Beispiel
47
2.1.6 Anwendungen
48
2.2 Reflection mit Generics
50
2.2.1 Reflection-Typsystem
51
2.2.2 Zusätzliche Methoden in Reflection-Klassen
53
2.2.3 Beispiel
53
3 Annotationen
59
3.1 Deklaration und Nutzung von Annotationen
59
3.2 Meta-Annotationen
62
3.3 Regeln für Annotationsdeklarationen
64
3.4 Reflection für Annotationen
65
3.5 Beispiel
69
3.6 Anwendung: Dependency Injection
71
4 Dynamische Proxies
75
4.1 Statische Proxies
76
4.2 Erzeugung dynamischer Proxies mit Reflection
81
4.3 Erzeugung dynamischer Proxies mit CGLIB
85
5 ClassLoader und Hot Deployment
90
5.1 Klassenladen in Java
90
5.2 ClassLoader
92
5.3 Beispiele
94
5.3.1 Hot Deployment
94
5.3.2 Gleichzeitige Nutzung mehrerer Versionen einer Klasse
96
Teil 2: Java-Komponenten
101
6 Prototypische Implementierung eines Komponentensystems
103
6.1 Beispielkomponenten
104
6.1.1 Komponente Nr. 1
104
6.1.2 Komponente Nr. 2
107
6.1.3 Komponente Nr. 3
109
6.1.4 Rückblick
112
6.1.5 Variation der Komponentenbeispiele
113
6.2 Framework
115
6.2.1 Struktur des Komponenten-Frameworks
115
6.2.2 Die Klasse ComponentManager
117
6.2.3 Die Klasse DeploymentDirectoryListener
122
6.2.4 Restliche Klassen
123
7 Komponenten und Komponentensysteme
125
7.1 Modularität als grundlegendes Prinzip von Komponentensystemen
125
7.2 Definitionen für Software-Komponenten
127
7.3 Eigenschaften von Java-Komponenten
129
7.4 Beispiele und Gegenbeispiele für Komponentensysteme
132
7.4.1 Beispiele aus dem Java-Umfeld
132
7.4.2 Gegenbeispiele aus dem Java-Umfeld
133
7.4.3 Beispiele aus dem Nicht-Java-Umfeld
133
Teil 3: Beispiele für Java- Komponentensysteme
135
8 Java Beans
137
8.1 Komponentenmodell
137
8.2 Gebundene Eigenschaften und Eigenschaften mit Vetomöglichkeit
139
8.3 BeanInfo
142
8.4 Software-Werkzeuge
144
8.5 Bewertung
145
9 OSGi
147
9.1 Komponentenmodell
147
9.2 Erstes Beispiel-Bundle
149
9.3 Zweites Beispiel-Bundle
153
9.4 Variationen der Beispiel-Bundles
156
9.5 Hot Deployment
158
9.6 Lebenszyklus von Komponenten
162
9.7 BundleContext und Bundle
163
9.8 Erweiterungen von OSGi
164
9.8.1 Declarative Services
164
9.8.2 Zusätzliche Erweiterungen
168
9.9 Versionen von Komponenten
169
9.10 Bewertung
170
10 Eclipse
172
10.1 Architektur von Eclipse
173
10.1.1 Eclipse-Funktionsgruppen
173
10.1.2 Workspace und Workbench
174
10.1.3 Erweiterungspunkte (Extension Points)
175
10.2 Komponentenmodell von Eclipse
176
10.3 Erstes Eclipse-Plugin
177
10.4 Weitere Eclipse-Plugins
183
10.5 Erweiterung der Eclipse-Plugins
184
10.6 Klassenladen bei Bedarf
185
10.7 Bewertung
187
11 Applets
188
11.1 Erstes Beispiel
188
11.2 Zweites Beispiel
191
11.3 Bewertung
194
12 Servlets
195
12.1 Verzeichnisstruktur eines Web-Servers
195
12.2 Komponentenmodell
196
12.2.1 Verzeichnisstruktur einer Komponente
196
12.2.2 Die Konfigurationsdatei web.xml
198
12.2.3 Java-Code einer Web-Komponente
199
12.3 Erste Beispielkomponente
203
12.4 Zweite Beispielkomponente
207
12.5 Bewertung
212
13 Enterprise Java Beans (EJB)
214
13.1 Mehrschichtige Architekturen
214
13.2 Interaktion mit EJB-Komponenten
216
13.3 Klassenarten einer EJB-Komponente
218
13.4 Session Beans
218
13.4.1 Stateful Session Beans
218
13.4.2 Stateless Session Beans
219
13.4.3 Singleton Session Beans
220
13.5 Komponentenmodell
221
13.6 Erste EJB-Beispielkomponente
222
13.6.1 Server-Seite
222
13.6.2 Client-Seite
224
13.7 Zweite EJB-Beispielkomponente
227
13.8 Dritte EJB-Beispielkomponente (Call-By-Value)
230
13.9 Vierte EJB-Beispielkomponente (Call-By-Reference)
232
13.9.1 Getrennte EJB-Jar-Dateien
232
13.9.2 Gemeinsame Ear-Datei mit Dependency Injection
235
13.9.3 Lokale Schnittstellen
236
13.10 Entities und Transaktionssteuerung
237
13.11 Funktionen eines EJB-Containers
240
13.12 Bewertung
241
14 Spring
242
14.1 Komponentenmodell
242
14.2 Erste Spring-Anwendung: Singletons und Prototypes
244
14.3 Zweite Spring-Anwendung: Dependency Injection
246
14.4 Factory-Methoden und Factory-Beans
248
14.5 Autowiring
248
14.6 Dritte Spring-Anwendung: Konfiguration durch Annotationen
249
14.7 Vierte Spring-Anwendung: BeanPostProcessor
250
14.8 Aspektorientierte Programmierung (AOP)
253
14.9 Fünfte Spring-Anwendung: AOP
254
14.10 Bewertung
257
15 Ereignisbusse
259
15.1 Grundkonzepte von Ereignisbussen
259
15.2 Komponentenmodell von RRiBbit
261
15.3 Erste RRiBbit-Anwendung
263
15.4 Zweite RRiBbit-Anwendung
266
15.5 Bewertung
269
16 Android
271
16.1 Software-Architektur von Android
272
16.2 Prinzipien der Ausführung von Apps
273
16.3 Komponentenmodell
277
16.4 Anwendung mit einer Activity
279
16.4.1 Activity mit programmierter Oberfläche
279
16.4.2 Activity mit XML-definierter Oberfläche
281
16.5 Anwendung mit mehreren Activities
284
16.5.1 Start einer Activity mit explizitem Intent
284
16.5.2 Start einer Activity mit implizitem Intent
286
16.5.3 Activity mit Resultat
287
16.5.4 Variationen
289
16.6 Lebenszyklus von Activities
290
16.7 Service und Activity im Vergleich
292
16.8 Anwendung mit einem ungebundenen Service
293
16.9 Anwendung mit einem gebundenen Service
296
16.9.1 AIDL-Schnittstelle
296
16.9.2 Implementierung einer AIDL-Schnittstelle
296
16.9.3 Realisierung eines gebundenen Service
297
16.9.4 Nutzung eines gebundenen Service
298
16.9.5 Parameterübergabe durch Call-By-Value-Result
300
16.9.6 Parameterübergabe durch Call-By-Reference
302
16.10 Bewertung
305
Literatur
307
Index
309