Suchen und Finden
Service
Java EE 7 - Enterprise-Anwendungsentwicklung leicht gemacht (2. Aufl.)
Dirk Weil
Verlag entwickler.press, 2015
ISBN 9783868026801 , 348 Seiten
Format PDF, ePUB, OL
Kopierschutz Wasserzeichen
Inhaltsverzeichnis
5
Vorwort
13
Kapitel 1 – Java EE im Überblick
15
1.1 Aufgabenstellung
15
1.2 Architekturmodell
15
1.3 Anwendungsbestandteile und Formate
16
1.4 Profile
18
1.5 Plattformen
19
2 CDI
21
2.1 Was ist das?
21
2.2 Wozu braucht man das?
21
2.3 Bereitstellung und Injektion von Beans
24
2.3.1 CDI Beans
24
2.3.2 Field Injection
25
2.3.3 Bean Type
26
2.3.4 Method Injection
27
2.3.5 Constructor Injection
28
2.3.6 Bean Name
29
2.3.7 Bean Scan
30
2.4 Lifecycle Callbacks
31
2.5 Qualifier
32
2.6 Alternatives
34
2.7 Nutzung der Java-EE-Umgebung
36
2.7.1 Java EE Resources
36
2.7.2 Built-in Beans
37
2.8 Producer und Disposer
38
2.8.1 Producer Methods
38
2.8.2 Producer Fields
39
2.8.3 Disposer Methods
40
2.8.4 Introspektion des Injektionsziels
41
2.9 Kontexte und Scopes
42
2.9.1 Request Scope
43
2.9.2 Session Scope
43
2.9.3 Application Scope
44
2.9.4 Conversation Scope
45
2.9.5 Bean Proxies
46
2.9.6 Dependent Scope
46
2.9.7 Qualifier @New
47
2.9.8 Transaction Scope
47
2.10 Interceptors
47
2.10.1 Interceptor Class
47
2.10.2 Interceptor Binding
48
2.10.3 Aktivierung eines Interceptors
50
2.10.4 Transaktions-Interceptor
51
2.11 Decorators
52
2.11.1 Decorator Class
52
2.11.2 Aktivierung eines Decorators
53
2.12 Stereotypes
53
2.13 Eventverarbeitung
55
2.13.1 Events erzeugen
56
2.13.2 Events verarbeiten
57
2.14 Programmgesteuerter Zugriff auf CDI Beans
60
2.14.1 Injektion von Bean-Instanzen
60
2.14.2 Bean Manager
61
2.15 Integration von JPA, EJB und JSF
62
2.16 Portable Extensions
63
2.16.1 Entwicklung eigener Extensions
64
2.16.2 Verfügbare Extensions
65
2.17 CDI in SE-Umgebungen
68
3 Java Persistence
71
3.1 Worum geht es?
71
3.1.1 Lösungsansätze
72
3.1.2 Anforderungen an O/R Mapper
73
3.1.3 Entwicklung des Standards
74
3.1.4 Architektur von Anwendungen auf Basis von JPA
75
3.2 Die Basics
76
3.2.1 Entity-Klassen
76
3.2.2 Konfiguration der Persistence Unit
78
3.2.3 CRUD
80
3.2.4 Detached Objects
82
3.2.5 Entity-Lebenszyklus
83
3.2.6 Mapping-Annotationen für einfache Objekte
84
3.2.7 Custom Converter
90
3.2.8 Generierte IDs
91
3.2.9 Objektgleichheit
94
3.2.10 Basisklassen für Entity-übergreifende Aspekte
97
3.3 Objektrelationen
98
3.3.1 Unidirektionale n:1-Relationen
99
3.3.2 Unidirektionale 1:n-Relationen
102
3.3.3 Bidirektionale 1:n-Relationen
103
3.3.4 Uni- und bidirektionale 1:1-Relationen
107
3.3.5 Uni- und bidirektionale n:m-Relationen
109
3.3.6 Eager und Lazy Loading
110
3.3.7 Entity Graphs
112
3.3.8 Kaskadieren
114
3.3.9 Orphan Removal
115
3.3.10 Anordnung von Relationselementen
116
3.4 Queries
118
3.4.1 JPQL
118
3.4.2 Native Queries
131
3.4.3 Criteria Queries
133
3.5 Vererbungsbeziehungen
141
3.5.1 Mapping-Strategie „SINGLE_TABLE“
142
3.5.2 Mapping-Strategie „TABLE_PER_CLASS“
144
3.5.3 Mapping-Strategie „JOINED“
145
3.5.4 Non-Entity-Basisklassen
146
3.5.5 Polymorphe Queries
147
3.6 Dies und das
147
3.6.1 Secondary Tables
147
3.6.2 Zusammengesetzte IDs
149
3.6.3 Dependent IDs
150
3.6.4 Locking
152
3.6.5 Callback-Methoden und Listener
156
3.6.6 Bulk Update/Delete
158
3.7 Caching
159
3.8 Erweiterte Entity Manager
163
3.8.1 Extended Entity Manager
163
3.8.2 Application-managed Entity Manager
165
3.9 Java Persistence in SE-Anwendungen
169
3.9.1 Konfiguration der Persistence Unit im SE-Umfeld
169
3.9.2 Erzeugung eines Entity Managers in SE-Anwendungen
170
3.9.3 Transaktionssteuerung in Java-SE-Anwendungen
171
3.9.4 Schema-Generierung
171
Kapitel 4 – Bean Validation
175
4.1 Aufgabenstellung
175
4.2 Plattformen und benötigte Bibliotheken
176
4.3 Validation Constraints
177
4.3.1 Attribute Constraints
177
4.3.2 Method Constraints
178
4.3.3 Vordefinierte Constraints
178
4.3.4 Transitive Gültigkeit
179
4.3.5 Constraint Composition
180
4.3.6 Constraint Programming
181
4.4 Objektprüfung
183
4.5 Internationalisierung der Validierungsmeldungen
184
4.6 Validierungsgruppen
185
4.7 Integration in JPA, CDI und JSF
187
4.8 Bean Validation in SE-Umgebungen
189
5 JavaServer Faces
191
5.1 Einsatzzweck von JSF
191
5.2 Die Basis: Java-Webanwendungen
191
5.2.1 Grundlegender Aufbau
191
5.2.2 Servlets
192
5.2.3 JavaServer Pages
194
5.3 JSF im Überblick
195
5.3.1 Model View Controller
195
5.3.2 Facelets
196
5.3.3 Request-Verarbeitung
197
5.4 Konfiguration der Webanwendung
199
5.5 Benötigte Bibliotheken und Plattformen
200
5.6 Programmierung der Views
201
5.6.1 JSF-Tag-Libraries
201
5.7 Managed Beans
207
5.8 Unified Expression Language
210
5.8.1 Methodenbindung
211
5.8.2 Wertebindung
211
5.8.3 Vordefinierte Variablen
213
5.8.4 Arithmetische Ausdrücke
214
5.9 Navigation
214
5.9.1 Regelbasierte Navigation
214
5.9.2 Inline-Navigation
216
5.9.3 Programmgesteuerte Navigation
217
5.10 Scopes
217
5.11 Verarbeitung tabellarischer Daten
218
5.12 Internationalisierung
220
5.12.1 Locale
221
5.12.2 Resource Bundles
222
5.12.3 Programmgesteuerter Zugriff auf Texte
223
5.13 Ressourcenverwaltung
223
5.13.1 Internationalisierung von Ressourcen
225
5.14 GET Support
225
5.14.1 Verarbeitung von GET-Request-Parametern
225
5.14.2 Erzeugung von GET-Requests
226
5.15 Eventverarbeitung
226
5.15.1 Faces Events
227
5.15.2 Phase Events
228
5.15.3 System Events
229
5.16 Konvertierung
230
5.16.1 Vordefinierte Konverter
230
5.16.2 Custom Converter
232
5.16.3 Ausgabe von Konverter- oder Validierungsmeldungen
233
5.17 Validierung
234
5.17.1 Validierung von Eingabewerten
234
5.17.2 Feldübergreifende Validierung
235
5.18 Immediate-Komponenten
241
5.18.1 „immediate“ für Eingabekomponenten
242
5.18.2 „immediate“ für Aktionskomponenten
242
5.19 AJAX
242
5.19.1 AJAX für Aktionselemente
243
5.19.2 AJAX-Events
244
5.19.3 AJAX-Callbacks
245
5.19.4 JavaScript API
245
5.20 Templating mit Facelets
246
5.20.1 Template
247
5.20.2 Template Client
247
5.20.3 Mehrstufige Templates
248
5.20.4 Mehrere Templates pro Seite
249
5.21 Eigene JSF-Komponenten
250
5.21.1 Composite Components
250
5.21.2 Composite Components mit Backing Beans
255
5.22 Faces Flows
256
5.22.1 Einfache, konventionsbasierte Flows
257
5.22.2 Deskriptorbasierte Flows
258
5.22.3 Producer-basierte Flows
259
5.22.4 Flow Scope
260
5.22.5 Extern definierte Flows
261
5.23 Resource Library Contracts
261
5.24 Exception Handling
262
5.25 Komponentenbibliotheken
264
5.26 Security
265
5.26.1 Log-in-Konfiguration
265
5.26.2 Securityrollen
266
5.26.3 Zugriffsregeln
267
6 Enterprise JavaBeans
269
6.1 Aufgabenstellung
269
6.2 Aufbau von Enterprise JavaBeans
269
6.2.1 EJB-Typen
270
6.2.2 EJB Lifecycle
272
6.3 EJB Deployment
272
6.4 Lokaler Zugriff auf Session Beans
273
6.4.1 Local Interface
274
6.4.2 No-Interface View
274
6.5 Remote-Zugriff
275
6.5.1 Remote Interface
275
6.5.2 Eintrag von EJBs im Namensdienst des Servers
277
6.5.3 Remote Lookup und clientseitige Nutzung von EJBs
278
6.6 Transaktionssteuerung
279
6.6.1 Transaction Management und Transaction Attribute
279
6.6.2 Application und System Exceptions
281
6.6.3 @Transactional vs. EJB Transactions
281
6.7 Asynchrone Methoden
282
6.8 Timer
283
6.9 Security
285
6.9.1 Deklarative Security
285
6.9.2 Programmgestützte Security
287
Kapitel 7 – RESTful Web Services
289
7.1 Hintergrund
289
7.2 REST-Prinzipien
290
7.3 JAX-RS
291
7.3.1 REST Application
291
7.3.2 Ressourcen
292
7.3.3 GET
293
7.3.4 PUT
297
7.3.5 POST
298
7.3.6 DELETE
300
7.3.7 Extended Path Expressions
301
7.3.8 Parameter-Injection
301
7.3.9 Subresource Locators
305
7.3.10 Entity Provider
306
7.3.11 Content Negotiation
309
7.3.12 Exception Handling
312
7.3.13 Clients
314
8 Ein „Real World“-Projekt
319
8.1 Aufgabenstellung
319
8.2 Anwendungsarchitektur
321
8.3 Persistenz
323
8.4 Views
332
8.5 Fachliche Injektion
336
Stichwortverzeichnis
339