SPR-001: Core Spring Trainings-Plan
In diesem viertägigen Training lernen Sie, wie man das Spring-Framework nutzen kann, um Geschäftsanwendungen effizienter zu entwickeln.
Trainings-Plan
- Tag 1 - Agiles Java EE: Grundlagen
- Einführung in die leichtgewichtige Container-Architektur und den Spring Application Context.
- Dependency Injection und testgetriebene Entwicklung als Basis für die Entwicklung einheitlich strukturierter, konfigurierbarere und leicht testbarere Anwendungen
- Wie Spring hilft, besseren und leichter wartbaren Code zu schreiben und welche Design Patterns dabei helfen.
- Tag 2 - Effektive Middle-Tier Architekturen
- Entwicklung eines Middle-Tier Design anhand eines praxisnahen Geschäftsvorfall im Dialog mit den Teilnehmern
- Effektive Persistenz: Best Practices bei der Entwicklung der Persistenz-Schicht mit Spring
- Analyse der Vor- und Nachteile verschiedener Persistenz-Strategien wie Hibernate, TopLink, JDO, iBATIS und Spring JDBC
- Transaktions-Management mit Spring
- Pragmatisches AOP mit Spring
- Entwicklung eigener Spring-Aspekte
- Advices automatisch auf Spring-Komponenten anwenden
- Middle-Tier Unit- and Integrations-Tests
- Tag 3 - Architektur und Design der Web-Schicht
- Verdeutlichung der Vorteile von Spring MVC anhand eines praxisnahen Beispiel
- Vergleich mit Struts
- Integrationsmöglichkeiten anderer Web-Frameworks
- Integration anderer View-Technologien wie JSP, PDF, Excel, Velocity und Freemarker
- Effektive Unit- und Integrations-Tests der Web-Schicht
- Tag 4 - Skalierung mit AOP und Spring Enterprise Services
- Absicherung der Web-Schnittstelle, einzelner Services und spezifischer Domänen-Objekte mit Spring Security (Acegi)
- Transparente Web Services und Remoting mit Spring Remoting
- Administration der Anwendungen mit Spring JMX
Genauer Tagesablauf
Tag 1
Tag 1 beginnt mit einem High-Level Überblick über das Spring-Framework. Es werden die Vorteile der POJO-basierten Software-Entwicklung aufgezeigt, die sich rein auf die Umsetzung der Geschäftslogik und die Nutzung von Schnittstellen konzentriert. Dadurch wird der Code unabhängig von der Umgebung und der konkreten Implementierung. Es folgt ein Überblick über Datenbankzugriffe, Transaktionen und die durch Spring verbesserte Testbarkeit des Codes.
Das nächste Thema ist der Spring Application Context, das Herz des Spring Frameworks. Die Teilnehmer werden nicht nur die grundlegenden Features des Application Context kennen lernen sondern auch die fortgeschrittenen Möglichkeiten, die zur Entwicklung von wartbaren und einfach erweiterbaren Anwendungen notwendig sind. Dazu gehören unter anderem:
- Änderungen am Application Context zur Laufzeit
- Erzeugen des Application Context in verschiedenen Umgebungen wie Swing-Clients, Integrationstests und Stand Alone Applications
- Nutzung von Factories
- Vorhandenen Code als Spring-Services anbieten
- Feingranulare Kontrolle über den Lebenszyklus der Services
- Einfügen von eigenem Code an wohl definierten Stellen im Lebenszyklus des Context
Am Ende des Tages verstehen die Teilnehmer die Architektur des leichtgewichtigen Spring-Containers und wie sie mit ihm schnell komplexe Systeme aus lose gekoppelten Komponenten zusammenstellen können. Außerdem haben sie gelernt, welche Ideen hinter Spring stehen und wie Spring es ihnen erlaubt, Anwendungen mit hoher Qualität schneller zu entwickeln.
Tag 2
Tag 2 setzt nahtlos an, wo Tag 1 geendet hat: Beim Geschäftsvorfall. Die Teilnehmer entwickeln dafür Integrationstests, um die korrekte Implementierung der Geschäftsregeln frühzeitig zu überprüfen. Dabei lernen sie auch Mocks und Stubs kennen, die dazu dienen, die parallele Entwicklung mit mehreren Teams zu koordinieren. Auch die dabei notwendige Kommunikation und Praktiken wie Test Driven Development (TDD) werden behandelt.
Dann implementieren sie mit Spring eine Persistenz-Schicht, die mit Hilfe von Hibernate und JDBC komplexe transaktionale Probleme löst.
Dazu wird eine vorhande, klassische, JDBC-Implementierung mit Hilfe von Springs DaoSupport-Klassen und der Template-basierten Infrastruktur stark vereinfacht, so dass sich der Code auf das wesentliche konzentriert. Die Teilnehmer lernen so auch, wie sie vorhandenen Code auf die Nutzung der Spring JDBC-Abstraktion umstellen können. Außerdem sehen sie, wie man JDBC in der Praxis effektiv verwenden kann, um auch das letzte Quäntchen Performance zu erreichen oder komplexe relationale Operationen zu implementieren.
Anschließend folgt eine Einführung in Hibernate-Integration in Spring, welche auch gemeinsam mit JDBC benutzt werden kann. In einem Beispiel wird die JDBC-Implementierung durch eine Hibernate-Implementierung ausgetauscht, ohne dass dazu die Service-Schicht verändert werden muss.
Nun lernen die Teilnehmer die Möglichkeiten der aspektorientierten Programmierung (AOP) kennen und erfahren, wann man AOP verwenden soll und wie man Querschnittsbelange identifizieren kann. Dabei erlernen sie auch, wie man die mit Spring ausgelieferten Aspekte verwenden kann und wie man eigene Aspekte entwickelt.
Zu den Themen im Bereich AOP gehören:
- Die AOP Bausteine
- Die verschiedenen von Spring unterstützten Advice-Typen
- Die Verwendung von Pointcuts, um Aspekte dynamisch auf den Code anzuwenden
- Das Schreiben eines POJO-basierten Aspekts mit Annotations und mit XML-Konfiguration
- Die verschiedenen Arten der Kontextübergabe an einen Aspekt
Die Teilnehmer werden sehen, wie das Spring AOP Framework Anwendungen signifikant vereinfachen kann, und wie sie AOP in ihren Anwendungen gewinnbringende einsetzen können, um so Code-Duplizierung zu vermeiden und den Code besser zu strukturieren.
Abschließend wird gezeigt, wie man Transaktionen mit Hilfe verschiedener Techniken aus der Spring-Transaktionsinfrastruktur verwaltet. Es wird sowohl die programmatische Verwaltung der Transaktionen also auch der deklarative Umgang mit AOP gezeigt. Die Teilnehmer sammeln Erfahrungen mit verschiedenen PlatformTransactionManager-Implementierungen und lernen dabei, wie man JDBC und Hibernate Zugriff in derselben Transaktion mischen kann.
Weiter geht es mit der deklarativen Verwaltung der Transaktions-Grenzen, Rollback-Regeln und Regeln für das Design der Transaktions-Infrastruktur der Anwendung. Die Teilnehmer wenden automatische Verwaltung der Transaktionen mit Autoproxy Creators an und lernen, wie man Transaktionsregeln als Metadaten mit Hilfe der JDK 5.0 Annotationen ausdrücken kann.
Am Ende des Tages haben die Teilnehmer einen vollständig funktionsfähigen Middle-Tier entwickelt, der den Logik-Kern ihrer Anwendung enthält. Sie haben außerdem die Komponenten der Anwendung isoliert getestet und auch als Teil des End-to-End Integrations-Tests, ohne dass die Anwendung auf einem Application Server installiert wurde. Sie haben die Vorteile von testgetriebener Software Entwicklung praktisch kennen gelernt. Außerdem haben sie Hibernate und JDBC in der Praxis verwendet und gesehen, wie man mit Spring die Geschäftslogik-Services deklarativ und ohne zusätzlichen Code in eine Infrastruktur integrieren kann, die dann zum Beispiel die Verwaltung der Transaktionen übernimmt.
Tag 3
Tag 3 fokussiert auf Web-Architektur und behandelt Spring MVC und Spring Web Flow detailliert. Die Teilnehmer lernen, wie man das Spring DispatcherServlet verwendet und an eigene Bedürfnisse anpasst. Ein weiteres Thema ist die Verbindung von Eingaben in ein Web-Formular mit Domänen-Objekten durch Deklarationen und Automatismen. Den Teilnehmern werden Best Practices mit Spring Controllern, HandlerMappings, View Resolvern und View Hierachien vermittelt, und wann man welche Implementierung verwenden sollte. Sie lernen auch Möglichkeiten zur Internationalisierung, zur Anpassung des Designs einer Web Anwendung und zur Optimierung der Benutzbarkeit der Web-Anwendung kennen.
Nach dem Spring MVC Framework steht die Integration der Spring Geschäftslogik in andere Web Technologien wie Struts, JSF oder Tapestry im Mittelpunkt und zwar ohne Änderungen am eigentlichen Code. Außerdem lernen die Teilnehmer, wie man Spring Web Flow verwenden kann, um die Navigation durch Web Anwendungen zu implementieren und wie man Flows in beliebigen Umgebungen wieder verwenden kann.
Als Abschluss wird das Spring Security Framework (Acegi) vorgestellt, welches zum Authentifizieren und Absichern von Web- und Client-/Server-Anwendungen benutzt werden kann. In einem Beispiel wird gezeigt, wie eine vorhandene Webanwendung auf einfache Art und Weise mit einem Login versehen werden kann und der Zugriff geschützt werden kann.
Tag 4
Tag 4 baut auf dem Code auf, den die Teilnehmer bisher entwickelt haben und verwendet Spring AOP und IoC, um die Anwendung mit der gesamten Mächtigkeit der Java EE Plattform auszustatten, ohne dabei etwas umschreiben zu müssen oder gar die Architektur zu ändern.
Dazu werden die Teilnehmer die transaktionale Service-Schicht den Remote-Clients über verschiedene Protokolle zur Verfügung stellen, darunter SOAP, Spring Remoting und Web Services. Schließlich wird mit Hilfe von JMX das Monitoring und die Administration der Anwendung implementiert.
Abhängig vom Fortschritt der Teilnehmer und den Interessen der Gruppe kann der Trainer noch weitere Themen anschneiden, wie z.B. andere AOP Frameworks, Scheduling, Konfiguration mit Java, Unterstützung für das Verschicken von EMails oder Unterstützung für JMS.
Am Ende des Trainings werden Sie "sehr viel gelernt haben und fast alles kann man sofort nutzen", wie einer Teilnehmer es ausdrückte. Außerdem können Sie die Trainings-Materialien und Ihren eigenen Code natürlich mit nach Hause nehmen, um ihn dann weiter zu nutzen.
Weitere Informationen
Ansatz
Durch unsere Trainings profitieren Sie vom umfangreichen Wissen und der Architektur-Expertise unseres Teams. Diesen Erfahrungsschatz bieten wir Ihnen in einer interaktiven und praxisnahen Umgebung an.
Das Core Spring Training behandelt nicht nur die verschiedenen Spring-Features und wie man diese nutzt, sondern auch grundlegende Architektur-Fragen. Es ist zwar wichtig zu wissen, wie man einen bestimmten Teil des Frameworks nutzt, aber noch wichtiger ist es, entscheiden zu können, wann man man ihn nutzt.
Voraussetzungen
Die Teilnehmer sollten Java und die Java SE APIs beherrschen. Außerdem sollten sie die Konzepte der Java EE APIs wie JTA oder Servlets kennen.
Übungen
Da das Training sowohl Spring als auch die theoretischen Grundlagen für die Entwicklung leichtgewichtiger, wartbarer und erweiterbarer Anwendungen behandelt, beträgt der Theorie-Anteil 50%. Die restlichen 50% sind Übungen.
Da die Übungen den größten Teil des Trainings einnehmen, benötigen Sie für das Training einen Computer-Arbeitsplatz. Sie können Ihren eigenen Laptop mitbringen oder Sie nutzen den von SpringSource vorbereiteten Rechner.
Unterlagen
Sie können natürlich die Trainingsunterlagen und den während des Trainings erstellten Code mitnehmen und für Ihre eigenen Projekte nutzen.
Kontakt
Falls Sie mehr Informationen über dieses Training benötigen, kontaktieren Sie uns.

