Spring im Einsatz

Craig Walls

Spring im Einsatz

2012

450 Seiten

Format: PDF, Online Lesen

E-Book: €  39,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446429468

 

Inhalt

6

Vorwort

14

Danksagungen

16

Zu diesem Buch

18

Teil I: Der Kern von Spring

22

1 Spring ins kalte Wasser

24

1.1 Vereinfachte Java-Entwicklung

25

1.1.1 Die Kraft der POJOs entfesseln

26

1.1.2 Abhängigkeiten injizieren

27

1.1.3 Aspekte anwenden

31

1.1.4 Boilerplate-Code durch Vorlagen eliminieren

36

1.2 Beans im Container

38

1.2.1 Mit einem Anwendungskontext arbeiten

39

1.2.2 Ein Bohnenleben

40

1.3 Begutachtung der Spring-Landschaft

42

1.3.1 Die Spring-Module

42

1.3.2 Das Spring-Portfolio

45

1.4 Was ist neu?

49

1.4.1 Was ist neu bei Spring.2.5?

49

1.4.2 Was ist neu bei Spring.3.0?

50

1.4.3 Was ist neu im Spring-Portfolio?

50

1.5 Zusammenfassung

51

2 Verschalten von Beans

52

2.1 Deklarieren von Beans

53

2.1.1 Das Setup der Spring-Konfiguration

53

2.1.2 Eine einfache Bean deklarieren

55

2.1.3 Injektion über Konstruktoren

56

2.1.4 Geltungsbereiche für Beans

60

2.1.5 Beans initialisieren und zerstören

61

2.2 Injektion in Bean-Eigenschaften

63

2.2.1 Einfache Werte injizieren

64

2.2.2 Andere Beans referenzieren

65

2.2.3 Eigenschaften mit dem Spring-Namensraum p verschalten

69

2.2.4 Collections miteinander verschalten

69

2.2.5 Nichts (null) verschalten

74

2.3 Mit Ausdrücken verschalten

75

2.3.1 SpEL-Grundlagen

76

2.3.2 Operationen mit SpEL-Werten ausführen

79

2.3.3 Collections in SpEL

84

2.4 Zusammenfassung

88

3 Die XML-Konfiguration in Spring minimalisieren

90

3.1 Bean-Eigenschaften automatisch verschalten

91

3.1.1 Die vier Typen des Autowiring

91

3.1.2 Standard-Autowiring

95

3.1.3 Gemischter Einsatz von automatischer und expliziter Verschaltung

96

3.2 Verschalten mit Annotationen

97

3.2.1 Die Arbeit mit @Autowired

97

3.2.2 Auf Standards basierendes Autowiring mit @Inject

101

3.2.3 Annotationsinjektion und Expressions

104

3.3 Automatische Erkennung von Beans

105

3.3.1 Beans für Autodiscovery annotieren

105

3.3.2 Filtern mit component-scan

106

3.4 Die Java-basierte Konfiguration von Spring

108

3.4.1 Java-basierte Konfiguration einrichten

108

3.4.2 Eine Konfigurationsklasse definieren

109

3.4.3 Eine einfache Bean deklarieren

109

3.4.4 Injizieren mit der Java-basierten Konfiguration von Spring

110

3.5 Zusammenfassung

111

4 Aspektorientierung

112

4.1 Einführung in AOP

113

4.1.1 Die Terminologie zu AOP

114

4.1.2 Die AOP-Unterstützung in Spring

117

4.2 Joinpoints mit Pointcuts auswählen

119

4.2.1 Pointcuts schreiben

120

4.2.2 Der bean()-Bezeichner von Spring

121

4.3 Aspekte in XML deklarieren

122

4.3.1 Before- und After-Advice deklarieren

123

4.3.2 Around-Advice deklarieren

125

4.3.3 Parameter an Advices übergeben

127

4.3.4 Neue Funktionalitäten mit Aspekten

129

4.4 Aspekte annotieren

131

4.4.1 Around-Advices annotieren

133

4.4.2 Argumente an annotierte Advices übergeben

134

4.4.3 Introductions annotieren

135

4.5 AspectJ-Aspekte injizieren

136

4.6 Zusammenfassung

139

Teil II: Wesentliches über Spring-Anwendungen

140

5 Zugriff auf die Datenbank

142

5.1 Die Philosophie des Datenzugriffs in Spring

143

5.1.1 Die Exception-Hierarchie beim Datenzugriff in Spring

144

5.1.2 Datenzugriffsschablonen

147

5.1.3 Klassen für den DAO-Support

149

5.2 Datenquelle konfigurieren

150

5.2.1 JNDI-Datenquellen verwenden

150

5.2.2 Pooldatenquelle verwenden

151

5.2.3 Auf JDBC-Treiber basierende Datenquelle

153

5.3 JDBC und Spring gemeinsam verwenden

154

5.3.1 Wie man JDBC-Code in den Griff bekommt

154

5.3.2 Mit JDBC-Vorlagen arbeiten

157

5.4 Hibernate und Spring integrieren

163

5.4.1 Hibernate – ein Überblick

164

5.4.2 Wie man eine Hibernate-Session-Factory deklariert

165

5.4.3 Spring-freies Hibernate bauen

167

5.5 Spring und die Java Persistence API

168

5.5.1 Entity-Manager-Factory konfigurieren

169

5.5.2 DAO auf JPA-Basis erstellen

173

5.6 Zusammenfassung

175

6 Transaktionen verwalten

176

6.1 Grundlagen zu Transaktionen

177

6.1.1 Transaktionen – mit vier Wörtern erklärt

178

6.1.2 Spring-Support für die Transaktionsverwaltung

179

6.2 Auswahl eines Transaktionsmanagers

180

6.2.1 JDBC-Transaktionen

181

6.2.2 Hibernate-Transaktionen

182

6.2.3 JPA-Transaktionen

182

6.2.4 JTA-Transaktionen

183

6.3 Transaktionen in Spring programmieren

184

6.4 Transaktionen deklarieren

186

6.4.1 Transaktionsattribute definieren

187

6.4.2 Transaktionen in XML deklarieren

191

6.4.3 Annotationsgetriebene Transaktionen definieren

193

6.5 Zusammenfassung

195

7 Webapplikationen mit Spring MVC erstellen

196

7.1 Der Start mit Spring MVC

197

7.1.1 Einem Request durch Spring MVC folgen

197

7.1.2 Das Setup von Spring

199

7.2 Einen Basis-Controller schreiben

201

7.2.1 Konfiguration eines annotationsgetriebenen Spring MVC

202

7.2.2 Den Homepage-Controller definieren

203

7.2.3 Auflösung von Views

205

7.2.4 Definition der Homepage-View

209

7.2.5 Den Spring-Anwendungskontext vervollständigen

212

7.3 Controller-Input bearbeiten

213

7.3.1 Controller schreiben, der Input verarbeitet

213

7.3.2 Den View darstellen

216

7.4 Formulare verarbeiten

217

7.4.1 Das Registrierungsformular darstellen

218

7.4.2 Formulareingaben verarbeiten

220

7.4.3 Eingaben validieren

222

7.5 Der Umgang mit Datei-Uploads

226

7.5.1 Datei-Upload-Feld im Registrierungsformular

226

7.5.2 Hochgeladene Dateien empfangen

227

7.5.3 Spring für Datei-Uploads konfigurieren

230

7.6 Zusammenfassung

231

8 Die Arbeit mit Spring Web.Flow

232

8.1 Installieren von Spring Web.Flow

233

8.1.1 Konfigurieren von Web.Flow in Spring

233

8.2 Die Komponenten eines Flows

236

8.2.1 Zustände

236

8.2.2 Transitionen

240

8.2.3 Ablaufdaten

241

8.3 Zusammensetzen der Einzelteile: Der Pizza-Ablauf

243

8.3.1 Definieren des Basisablaufs

243

8.3.2 Kundeninformationen sammeln

247

8.3.3 Eine Bestellung bilden

252

8.3.4 Zahlungsannahme

255

8.4 Absichern von Web-Flows

257

8.5 Zusammenfassung

257

9 Spring absichern

260

9.1 Einführung in Spring Security

261

9.1.1 Der Start mit Spring Security

261

9.1.2 Der Konfigurationsnamensraum von Spring Security

262

9.2 Webanfragen absichern

263

9.2.1 Proxys für Servlet-Filter erstellen

264

9.2.2 Minimale Websicherheit konfigurieren

265

9.2.3 Requests abfangen

268

9.3 Die Absicherung von Elementen auf View-Ebene

271

9.3.1 Der Zugriff auf Authentifizierungsdetails

272

9.3.2 Darstellung nach jeweiliger Befugnis

273

9.4 Benutzer authentifizieren

275

9.4.1 Konfiguration eines speicherresidenten User-Repositorys

276

9.4.2 Authentifizierung gegenüber einer Datenbank

277

9.4.3 Authentifizierung gegenüber einem LDAP-Repository

279

9.4.4 Die Funktionalität „Auf diesem Computer merken“

282

9.5 Methoden sichern

283

9.5.1 Mit @Secured annotierte Methoden sichern

284

9.5.2 @RolesAllowed von JSR-250 verwenden

284

9.5.3 SpEL-Sicherheit mit Pre- und Post-Invocation

285

9.5.4 Sicherheits-Pointcuts auf Methodenebene deklarieren

290

9.6 Zusammenfassung

290

Teil III: Spring integrieren

292

10 Die Arbeit mit Remote-Diensten

294

10.1 Das Spring-Remoting im Überblick

295

10.2 Die Arbeit mit RMI

297

10.2.1 Einen RMI-Service exportieren

298

10.2.2 Einen RMI-Service verschalten

300

10.3 Remote-Services mit Hessian und Burlap veröffentlichen

303

10.3.1 Bean-Funktionalitäten mit Hessian und Burlap verfügbar machen

303

10.3.2 Zugriff auf Hessian-/Burlap-Services

306

10.4 Springs HTTP-Invoker verwenden

307

10.4.1 Beans als HTTP-Services verfügbar machen

308

10.4.2 Zugriff auf Services via HTTP

309

10.5 Webservices veröffentlichen und weiterverarbeiten

310

10.5.1 Spring-fähige JAX-WS-Endpunkte erstellen

312

10.5.2 JAX-WS-Services auf Client-Seite mit Proxy versehen

315

10.6 Zusammenfassung

317

11 Spring und REST

318

11.1 Representational State Transfer (REST)

319

11.1.1 Die Grundlagen von REST

319

11.1.2 Wie Spring REST unterstützt

320

11.2 Ressourcenorientierte Controller schreiben

320

11.2.1 Analyse eines nicht-REST-konformen Controllers

321

11.2.2 REST-konforme URLs bearbeiten

322

11.2.3 Die REST-Verben ausführen

325

11.3 Ressourcen repräsentieren

329

11.3.1 Die Repräsentation der Ressource verhandeln

329

11.3.2 Die Arbeit mit HTTP-Nachrichtenkonvertierern

332

11.4 REST-Clients schreiben

336

11.4.1 Die Operationen von RestTemplate

337

11.4.2 Ressourcen mit GET bekommen

338

11.4.3 Ressourcen mit PUT beziehen

341

11.4.4 Ressourcen mit DELETE löschen

343

11.4.5 Ressourcendaten mit POST zum Server bringen

344

11.4.6 Ressourcen austauschen

346

11.5 REST-konforme Formulare übermitteln

348

11.5.1 Versteckte Methodenfelder in JSP darstellen

349

11.5.2 Den echten Request demaskieren

350

11.6 Zusammenfassung

351

12 Messaging in Spring

354

12.1 Kurze Einführung in JMS

355

12.1.1 Die Architektur von JMS

356

12.1.2 Die Vorteile von JMS

358

12.2 Einen Message-Broker in Spring einrichten

360

12.2.1 Erstellen einer ConnectionFactory

360

12.2.2 Deklaration eines Nachrichtenendpunkts für ActiveMQ

361

12.3 Das JMS-Template von Spring

362

12.3.1 Umgang mit unübersichtlichem JMS-Code

363

12.3.2 Die Arbeit mit JMS-Templates

364

12.4 Erstellung nachrichtengetriebener POJOs

370

12.4.1 Erstellen eines Message-Listeners

371

12.4.2 Message-Listener konfigurieren

372

12.5 Die Arbeit mit nachrichtenbasierten RPCs

373

12.5.1 Die Arbeit mit nachrichtengetriebenen RPC in Spring

373

12.5.2 Asynchrones RPC mit Lingo

376

12.6 Zusammenfassung

378

13 Verwalten von Spring-Beans mit JMX

380

13.1 Spring-Beans als MBeans exportieren

381

13.1.1 Methoden über den Namen bereitstellen

384

13.1.2 Über Interfaces, die Operationen und Attribute von MBeans definieren

386

13.1.3 Die Arbeit mit von Annotierungen gesteuerten MBeans

387

13.1.4 Der Umgang mit MBean-Kollisionen

388

13.2 Remoting von MBeans

390

13.2.1 Exportieren von Remote-MBeans

390

13.2.2 Zugriff auf Remote-MBeans

391

13.2.3 Proxy für MBeans

392

13.3 Der Umgang mit Benachrichtigungen

394

13.3.1 Auf Benachrichtigungen lauschen

395

13.4 Zusammenfassung

396

14 Krimskrams

398

14.1 Die Konfiguration auslagern

398

14.1.1 Property-Placeholder ersetzen

399

14.1.2 Eigenschaften überschreiben

402

14.1.3 Externe Eigenschaften verschlüsseln

403

14.2 JNDI-Objekte verschalten

405

14.2.1 Die Arbeit mit konventionellem JNDI

406

14.2.2 Injektion von JNDI-Objekten

407

14.2.3 Verschaltung von EJBs in Spring

411

14.3 Der E-Mail-Versand

412

14.3.1 Konfiguration eines Mail-Senders

412

14.3.2 Konstruktion der E-Mail

414

14.4 Scheduling und Hintergrundaufgaben

420

14.4.1 Geplante Methoden deklarieren

420

14.4.2 Asynchrone Methoden deklarieren

422

14.5 Zusammenfassung

423

14.6 Das Ende …?

424

Register

426

 

© 2009-2024 ciando GmbH