Spring im Einsatz Übersetzt aus dem Englischen von Christian Alkemper, Jürgen Dubau

Ähnliche Dokumente
Open Source Frameworks

Application Frameworks

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

J2EE mit Eclipse 3 und JBoss

Programmierung von Java- Webanwendungen. paluno

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Inhaltsverzeichnis. 1 Ein Einstieg mit Profil 1. 2 Aufsetzen der Entwicklungsumgebung 19

Rapid Java wie mit Forms

Das Spring Framework eine Einführung

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Hibernate Das Praxisbuch für Entwickler

Marc Fleury Scott Stark Norman Richards JBoss, Inc. JBoss 4.0

Enterprise Softwarearchitekturen in Java

JBoss Seam. Ein JEE 5 Webframework. Jörg Wüthrich Infopoint, 4. Februar 2009

Inhaltsverzeichnis. Javid Jamae, Peter Johnson. JBoss im Einsatz. Den JBoss Application Server konfigurieren

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Masterkurs Verteilte betriebliche Informationssysteme

Middleware und Persistenzstrategien Das Spring Framework und Java Datenbanktechniken. Literaturzusammenfassung

Enterprise JavaBeans Überblick

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Programmierung von Client/Server- Anwendungen

Softwareentwicklung mit Enterprise JAVA Beans

Module für eine Java-Administrationsschulung

Inhalt. Einführung RFC-Funktionsbausteine in ABAP Funktionsbausteine zum Lesen Aufruf per srfc 108

Java Web Services mit Apache Axis2 Entwickler

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

Spring Dynamic Modules for OSGi Service Platforms

Enterprise Java Beans Einführung

Ruby on Rails. Thomas Baustert Ralf Wirdemann Alternative zur Web-Entwicklung mit Java?

Rechnernetze Projekt SS 2015

Java Web Services mit Apache Axis2

Liste V Enterprise JavaBeans

Axis2, CXF und JAX-WS RI im Vergleich

Eclipse und EclipseLink

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

JAX-RS 2.0 REST mit Java EE 7

Java EE kompakt - Power Workshop

WildFly Application Server Administration

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Dependency Injection in der Praxis: Spring, PicoContainer und Eclipse im Vergleich

Dirk Reinemann Working Student Sales Consulting

Projekterfahrung. Claus Kerpen. Tel.: 0151/ Internet: Inhaltsverzeichnis

richard OATES thomas LANGER stefan WILLE torsten LUECKOW gerald BACHLMAYR SPRING & HIBERNATE EINE PRAXISBEZOGENE EINFÜHRUNG 2.

Application Servers. Application Server JBoss Java Management Extensions (JMX) Dynamische Rekonfigurierung

Java 2, Enterprise Edition Einführung und Überblick

Oracle Weblogic Administration Grundlagen

<Insert Picture Here> Oracle Forms Roadmap in Richtung SOA

Spring Dynamic Modules for OSGi Service Platforms

Webanwendungen mit IBM Rational und IBM WebSphere V6

JSP und Servlet Programmierung

Anwendungsentwicklung mit Spring

ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS. Piotr Kasprzak

WebSphere Application Server Installation

Auszug aus JAX-WS Folien

Security Technologien in Java EE 6

Enterprise JavaBeans Überblick

JDO Java Data Objects

Bernd Müller. JavaServer Faces 2.0. Ein Arbeitsbuch für die Praxis ISBN: Weitere Informationen oder Bestellungen unter

Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Teil I Webinhalte mit Eclipse erzeugen 1. 1 HTML-Seiten erstellen 3

Java Kurs Online Kurs Java Analysten Programmierer

Konfiguration und Deployment einer hochverfügbaren ADF Anwendung

M i t a r b e i t e r p r o f i l (Stand: August 09)

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Administration und Konfiguration für JBOSS

Behandelt Java EE 6. O Reillys Taschenbibliothek. Java EE. kurz & gut. Arun Gupta O REILLY. Übersetzung von Thomas Demmig

Der SBB Online-Ticketshop Mit SOA zum Erfolg

Gregor Raschke 2008 HIBERNATE. Eine Einführung

Praktikum Spring MVC Spring integrieren In der pom.xml Einträge für Spring hinzufügen.

Android Kurs Online Kurs Entwicklung auf Android-Handys

Generalthema FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen

Geronimo, konfigurierbarer Java EE Application Server

Martin Marinschek- Wolfgang Radinger. Ruby on Rails. Einstieg in die effiziente Webentwicklung. [Tu dpunkt.verlag

Administration und Konfiguration für JBoss 7

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -

Programmieren mit Eclipse 3

Struts Shale. Von Bernhard Slominski

Ein Ausblick auf die neuen Features

Architecture Blueprints

Struts 2 Das Imperium schlägt zurück?

Übungsaufgabe Transaktion als Middleware

Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen

Semester: -- Workload: 300 h ECTS Punkte: 10

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

Komponentenorientierte Software-Entwicklung. Seite 1 / 44

P R A X I S B E R I C H T : D I G I T A L E T R A N S F O R M A T I O N M I T J B O S S F U S E & 3 S C A L E

Metadata Service Respository (MDS) - Sehen, lernen, verstehen!

Java Web Services in der Praxis

BI Publisher Berichtswesen einfach und sicher. Alexander Klauss Centric IT Solutions GmbH

Programmieren mit Edipse 3

Aspektorientierte Middleware Florian Wagner

Transkript:

Craig Walls, Ryan Breidenbach Spring im Einsatz Übersetzt aus dem Englischen von Christian Alkemper, Jürgen Dubau ISBN-10: 3-446-41240-9 ISBN-13: 978-3-446-41240-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41240-8 sowie im Buchhandel

Inhalt Vorwort...XV Danksagung...XIX Zu diesem Buch...XVII Teil 1: Der Kern von Spring...XX 1 Spring ins kalte Wasser... 3 1.1 Was ist Spring?... 4 1.1.1 Die Spring-Module... 6 1.2 Der erste Schritt... 10 1.3 Überblick über die Dependency Injection... 13 1.3.1 Abhängigkeiten injizieren... 13 1.3.2 DI im Einsatz... 14 1.3.3 DI in Unternehmensanwendungen... 20 1.4 Die aspektorientierte Programmierung... 22 1.4.1 Einführung in AOP... 22 1.4.2 AOP im Einsatz... 23 1.5 Zusammenfassung...27 2 Grundlagen der Bean-Verschaltung... 29 2.1 Beans im Container... 30 2.1.1 Grundlagen zur BeanFactory... 31 2.1.2 Mit einem Anwendungskontext arbeiten... 33 2.1.3 Ein Bohnenleben... 34 2.2 Beans erstellen... 37 2.2.1 Eine einfache Bean deklarieren... 37 2.2.2 Injektion über Konstruktoren... 38 2.3 Injektion in Bean-Eigenschaften... 43 2.3.1 Einfache Werte injizieren... 44 2.3.2 Andere Beans referenzieren... 45 2.3.3 Collections verschalten... 48 2.3.4 Nichts (null) verschalten... 53 VII

2.4 Autowiring...54 2.4.1 Die vier Typen des Autowiring...54 2.4.2 Gemischter Einsatz von automatischer und expliziter Verschaltung...58 2.4.3 Autowiring: Ja oder nein?...58 2.5 Steuerung der Bean-Erstellung...60 2.5.1 Geltungsbereiche für Beans...60 2.5.2 Beans aus Factory-Methoden erstellen...61 2.5.3 Beans initialisieren und zerstören...63 2.6 Zusammenfassung...65 3 Fortgeschrittene Bean-Verschaltung... 67 3.1 Abgeleitete Beans deklarieren...68 3.1.1 Abstrahieren eines Bean-Basistyps...68 3.1.2 Gemeinsame Eigenschaften abstrahieren...71 3.2 Die Methodeninjektion...73 3.2.1 Methodenersetzung...74 3.2.2 Die Getter-Injektion...77 3.3 Nicht-Spring-Beans injizieren...79 3.4 Editoren für benutzerdefinierte Eigenschaften registrieren...81 3.5 Mit speziellen Spring-Beans arbeiten...84 3.5.1 Beans nachbearbeiten...85 3.5.2 Nachbearbeitung der BeanFactory...87 3.5.3 Konfigurationseigenschaften externalisieren...89 3.5.4 Textnachrichten auflösen...91 3.5.5 Entkopplung mit Anwendungsereignissen...92 3.5.6 Bewusstseinserweiterung für Beans...95 3.6 Skript-Beans...97 3.6.1 Wie die Limone in die Kokosnuss kommt...98 3.6.2 Beans skripten...99 3.6.3 Eigenschaften von Skript-Beans injizieren...102 3.6.4 Skript-Beans aktualisieren...103 3.6.5 Skript-Beans inline schreiben...103 3.7 Zusammenfassung...104 4 AdviceBeans... 107 4.1 Einführung in AOP...108 4.1.1 Die Terminologie zu AOP...109 4.1.2 Der AOP-Support in Spring...112 4.2 Klassische Spring-Aspekte erstellen...115 4.2.1 Advices erstellen...117 4.2.2 Pointcuts und Advisors definieren...122 4.2.3 ProxyFactoryBeans verwenden...125 4.3 Autoproxying...128 4.3.1 Autoproxys für Spring-Aspekte erstellen...129 4.3.2 Autoproxying von @AspectJ-Aspekten...130 4.4 Pure-POJO-Aspekte deklarieren...133 VIII

4.5 AspectJ-Aspekte injizieren... 137 4.6 Zusammenfassung... 140 Teil 2: Spring für Unternehmen... 141 5 Zugriff auf die Datenbank... 143 5.1 Die Philosophie des Datenzugriffs in Spring... 144 5.1.1 Die Exception-Hierarchie beim Datenzugriff in Spring... 146 5.1.2 Datenzugriffsschablonen... 148 5.1.3 Klassen für den DAO-Support... 150 5.2 Datenquelle konfigurieren... 152 5.2.1 JNDI-Datenquellen verwenden... 152 5.2.2 Pooldatenquelle verwenden... 154 5.2.3 Auf JDBC-Treiber basierende Datenquelle... 155 5.3 JDBC und Spring gemeinsam verwenden... 156 5.3.1 Wie man JDBC-Code in den Griff bekommt... 157 5.3.2 Mit JDBC-Vorlagen arbeiten... 159 5.3.3 Springs DAO-Supportklassen für JDBC verwenden... 165 5.4 Hibernate und Spring integrieren... 168 5.4.1 Hibernate-Version auswählen... 170 5.4.2 Hibernate-Vorlagen verwenden... 171 5.4.3 DAOs auf Hibernate-Basis erstellen... 174 5.4.4 Kontextabhängige Sessions in Hibernate 3... 176 5.5 Spring und die Java Persistence API... 178 5.5.1 JPA-Vorlagen verwenden... 178 5.5.2 Entity-Manager-Factory konfigurieren... 181 5.5.3 DAOs auf JPA-Basis erstellen... 185 5.6 Spring und ibatis... 186 5.6.1 ibatis-clientvorlage konfigurieren... 187 5.6.2 DAOs auf ibatis-basis erstellen... 189 5.7 Caching... 191 5.7.1 Caching-Lösung konfigurieren... 192 5.7.2 Bean-Proxys für das Caching erstellen... 196 5.7.3 Annotationsgetriebenes Caching... 198 5.8 Zusammenfassung... 200 6 Transaktionen verwalten... 201 6.1 Grundlagen zu Transaktionen... 202 6.1.1 Transaktionen mit vier Wörtern erklärt... 203 6.1.2 Spring-Support für die Transaktionsverwaltung... 204 6.2 Auswahl eines Transaktionsmanagers... 205 6.2.1 JDBC-Transaktionen... 207 6.2.2 Hibernate-Transaktionen... 207 6.2.3 JPA-Transaktionen... 208 6.2.4 JDO-Transaktionen... 209 6.2.5 JTA-Transaktionen... 209 IX

6.3 Transaktionen in Spring programmieren...210 6.4 Transaktionen deklarieren...212 6.4.1 Transaktionsattribute definieren...213 6.4.2 Transaktions-Proxys...217 6.4.3 Transaktionen in Spring 2.0 deklarieren...220 6.4.4 Annotationsgetriebene Transaktionen definieren...222 6.5 Zusammenfassung...224 7 Spring absichern... 225 7.1 Einführung in Spring Security...226 7.2 Benutzer authentifizieren...230 7.2.1 Einen Provider-Manager konfigurieren...231 7.2.2 Authentifizierung gegenüber einer Datenbank...233 7.2.3 Authentifizierung gegenüber einem LDAP-Repository...240 7.3 Zugriffssteuerung...246 7.3.1 Über Zugriffsentscheidungen abstimmen...247 7.3.2 Die Stimmabgabe...248 7.3.3 Stimmenthaltungen...249 7.4 Webanwendungen absichern...250 7.4.1 Proxys für Spring Security-Filter erstellen...253 7.4.2 Sicherheitskontexte behandeln...259 7.4.3 Aufforderung zur Benutzeranmeldung...260 7.4.4 Sicherheits-Exceptions behandeln...265 7.4.5 Websicherheit erzwingen...266 7.4.6 Sicheren Kanal schützen...268 7.5 Sicherheit für die Darstellungsebene...270 7.5.1 Bedingtes Inhalts-Rendering...271 7.5.2 Authentifizierungsdaten anzeigen...272 7.6 Methodenaufrufe schützen...273 7.6.1 Sicherheitsaspekt erstellen...273 7.6.2 Methoden mit Metadaten absichern...275 7.7 Zusammenfassung...276 8 Spring und POJO-basierte Remote-Services... 277 8.1 Das Spring-Remoting im Überblick...278 8.2 Mit RMI arbeiten...281 8.2.1 RMI-Services verschalten...281 8.2.2 RMI-Services exportieren...283 8.3 Remoting mit Hessian und Burlap...287 8.3.1 Zugriff auf Hessian-/Burlap-Services...287 8.3.2 Bean-Funktionalitäten mit Hessian und Burlap verfügbar machen...289 8.4 Springs HTTP-Invoker verwenden...293 8.4.1 Zugriff auf Services via HTTP...293 8.4.2 Beans als HTTP-Services verfügbar machen...294 8.5 Spring und Webservices...296 8.5.1 Beans als Webservices mit XFire exportieren...296 X

8.5.2 Webservices mit JSR-181-Annotationen erstellen... 300 8.5.3 Webservices weiterverarbeiten... 303 8.5.4 Proxys für Webservices mit einem XFire-Client erstellen... 309 8.6 Zusammenfassung... 310 9 Erstellen von Contract First Web Services in Spring... 311 9.1 Einführung in Spring Web Services... 313 9.2 Den Kontrakt (zuerst!) definieren... 315 9.2.1 Erstellen von Beispiel-XML-Nachrichten... 315 9.3 Umgang mit Nachrichten mit Dienstendpunkten... 320 9.3.1 Erstellen eines JDOM-basierten Nachricht-Endpunkts... 321 9.3.2 Marshalling von Nachrichten-Payloads... 323 9.4 Die gemeinsame Verschaltung... 326 9.4.1 Spring-WS im Gesamtzusammenhang... 327 9.4.2 9.4.3 Nachrichten auf Endpunkte mappen... 328 Verschalten des Dienstendpunkts... 329 9.4.4 Einen Nachrichten-Marshaller konfigurieren... 329 9.4.5 Umgang mit Endpunkt-Exceptions... 332 9.4.6 Die Arbeit mit WSDL-Dateien... 333 9.4.7 Den Dienst deployen... 337 9.5 Verarbeitung von Spring-WS-Webservices... 337 9.5.1 Die Arbeit mit Webservice-Templates... 338 9.5.2 Die Arbeit mit WebServiceGatewaySupport... 344 9.6 Zusammenfassung... 345 10 Messaging in Spring... 347 10.1 Kurze Einführung in JMS... 348 10.1.1 Die Architektur von JMS... 349 10.1.2 Die Vorteile von JMS... 352 10.1.3 Einrichtung von ActiveMQ in Spring... 354 10.2 JMS im Einsatz mit Spring... 355 10.2.1 Umgang mit unübersichtlichem JMS-Code... 355 10.2.2 Die Arbeit mit JMS-Templates... 357 10.2.3 Nachrichten konvertieren... 363 10.2.4 Die Gateway-Support-Klassen von Spring in JMS... 366 10.3 Erstellung nachrichtengetriebener POJOs... 367 10.3.1 Erstellen eines Message-Listeners... 368 10.3.2 Das Schreiben reiner POJO-MDBs... 371 10.4 Die Arbeit mit nachrichtenbasierten RPCs... 375 10.4.1 Einführung in Lingo... 376 10.4.2 Den Service exportieren... 377 10.4.3 JMS und Proxy... 378 10.5 Zusammenfassung... 380 XI

11 Spring und Enterprise JavaBean... 381 11.1 Verschaltung von EJBs in Spring...382 11.1.1 Session-Beans und Proxys (EJB 2.x)...383 11.1.2 Verschalten von EJBs mit Spring-Beans...387 11.2 Entwicklung von Spring-fähigen EJBs (EJB 2.x)...388 11.3 Spring und EJB 3...390 11.3.1 Pitchfork...391 11.3.2 Der Start mit Pitchfork...392 11.3.3 Ressourcen durch Annotationen injizieren...393 11.3.4 Deklaration von Interceptors über Annotationen...394 11.4 Zusammenfassung...395 12 Zugriff auf Enterprise-Services... 397 12.1 Objekte von JNDI verschalten...398 12.1.1 Die Arbeit mit konventionellem JNDI...399 12.1.2 Injektion von JNDI-Objekten...401 12.1.3 Verschalten von JNDI-Objekten in Spring 2...404 12.2 Der E-Mail-Versand...405 12.2.1 Konfiguration eines Mail-Senders...405 12.2.2 Konstruktion der E-Mail...407 12.3 Zeitplanung für Tasks...410 12.3.1 Zeitplanung mit dem Timer von Java...410 12.3.2 Der Quartz Scheduler...413 12.3.3 Methoden bei einem Zeitplan aufrufen...417 12.4 Verwalten von Spring-Beans mit JMX...419 12.4.1 Spring-Beans als MBeans exportieren...419 12.4.2 Remoting von MBeans...428 12.4.3 Benachrichtigungen...432 12.5 Zusammenfassung...434 Teil 3: Spring auf der Client-Seite... 437 13 Umgang mit Webanfragen... 439 13.1 Der Start mit Spring MVC...440 13.1.1 Ein Tag im Leben einer Anfrage...440 13.1.2 Die Konfiguration von DispatcherServlet...442 13.1.3 Spring MVC im Überblick...444 13.2 Anfragen den Controllern zuordnen...450 13.2.1 Die Arbeit mit SimpleUrlHandlerMapping...451 13.2.2 Die Arbeit mit ControllerClassNameHandlerMapping...452 13.2.3 Zuordnung von Controllern über Metadaten...453 13.2.4 Die Arbeit mit mehreren Handler-Mappings...453 13.3 Die Bearbeitung von Anfragen durch Controller...454 13.3.1 Verarbeitung von Befehlen...457 13.3.2 Formulareingaben verarbeiten...459 13.3.3 Verarbeitung komplexer Formulare mit Assistenten...466 XII

13.3.4 Die Arbeit mit Throwaway-Controllern... 473 13.4 Umgang mit Exceptions... 476 13.5 Zusammenfassung... 476 14 Darstellen von Web-Views... 479 14.1 Auflösung von Views... 480 14.1.1 Die Arbeit mit Template-Views... 481 14.1.2 Auflösen von View-Beans... 483 14.1.3 Wahl eines View-Resolvers... 485 14.2 Die Arbeit mit JSP-Templates... 487 14.2.1 Binding von Formulardaten... 487 14.2.2 Darstellung von ausgelagerten Nachrichten... 489 14.2.3 Fehlerausgabe... 491 14.3 Seitenlayout mit Tiles... 493 14.3.1 Tiles-Views... 493 14.3.2 Erstellen von Controllern in Tiles... 497 14.4 Alternativen zu JSP... 499 14.4.1 Die Arbeit mit Velocity-Templates... 499 14.4.2 Die Arbeit mit FreeMarker... 505 14.5 Generierung von Nicht-HTML-Ausgaben... 510 14.5.1 Erstellung von Excel-Tabellen... 510 14.5.2 Generierung von PDF-Dokumenten... 513 14.5.3 Entwicklung eigener Views... 515 14.6 Zusammenfassung... 518 15 Die Arbeit mit Spring Web Flow... 519 15.1 Der Einstieg bei Spring Web Flow... 521 15.1.1 Die Arbeit mit Spring Web Flow... 523 15.1.2 Wesentliche Grundzüge von Spring Web Flow... 526 15.1.3 Erstellen eines Ablaufs... 528 15.2 Die Grundlagen für den Ablauf... 529 15.2.1 Ablaufvariablen... 529 15.2.2 Start- und Endzustände... 531 15.2.3 Die Kundeninformationen... 532 15.2.4 Die Pizzabestellung... 538 15.2.5 Abschließen der Bestellung... 541 15.2.6 Einige Feinarbeiten... 543 15.3 Fortgeschrittene Webflow-Techniken... 546 15.3.1 Die Arbeit mit Entscheidungszuständen... 547 15.3.2 Extrahierung von Unterabläufen und Unterzuständen... 549 15.4 Spring Web Flow mit anderen Frameworks integrieren... 553 15.4.1 Jakarta Struts... 553 15.4.2 JavaServer Faces... 554 15.5 Zusammenfassung... 555 XIII

16 Integration mit anderen Webframeworks... 557 16.1 Die gemeinsame Nutzung von Spring und Struts...558 16.1.1 Registrieren des Spring-Plug-ins bei Struts...559 16.1.2 Das Schreiben von Spring-fähigen Struts-Actions...560 16.1.3 Delegation an in Spring konfigurierte Actions...562 16.1.4 Was ist mit Struts 2?...564 16.2 Die Arbeit mit Spring und WebWork 2/Struts 2...565 16.3 Integration von Spring und Tapestry...568 16.3.1 Integration von Spring und Tapestry 3...569 16.3.2 Integration von Spring und Tapestry 3...572 16.4 Spring mit JSF ein Gesicht verleihen...573 16.4.1 Auflösen von über JSF verwalteten Eigenschaften...574 16.4.2 Auflösung von Spring-Beans...576 16.4.3 Spring-Beans mit JSF-Seiten verwenden...577 16.4.4 Der Anwendungskontext in JSF...578 16.5 Durch DWR Ajax mit Spring-Anwendungen einsetzen...578 16.5.1 Direct Web Remoting...579 16.5.2 Zugriff mit DWR auf in Spring verwaltete Beans...587 16.6 Zusammenfassung...592 A Das Setup von Spring... 593 A.1 Download von Spring...593 A.1.1 Die Spring-Distribution...594 A.1.2 Erstellen des Klassenpfads...595 A.2 Spring-Abhängigkeit in Maven 2 konfigurieren...596 A.3 Spring und Ant...599 A.4 Spring und Log4j...600 B Tests mit (und ohne) Spring... 603 B.1 Einführung in das Testverfahren...603 B.1.1 Die unterschiedlichen Testverfahren...604 B.1.2 Die Arbeit mit JUnit...605 B.1.3 Die Rolle von Spring bei Tests...608 B.2 Unit-Tests für Spring MVC Controller...609 B.2.1 Mock-Objekte...610 B.2.2 Testen der Inhalte von ModelAndView...613 B.3 Integrationstest mit Spring...615 B.3.1 Testen verschalteter Objekte...616 B.3.2 Integrationstests von transaktionalen Objekten...619 B.3.3 Tests mit der Datenbank...621 B.3.4 Tests in JUnit 4 mit gienah...624 B.4 Zusammenfassung...626 Register... 627 XIV