g        GFU Cyrus AG
Ihr Partner für IT Schulung




      "Semicolon" Vortragsreihe bei der GFU
                        ...
Disclaimer

  Dieses Folienset ist nicht zum
     Selbststudium geeignet!

Bitte konsultieren Sie die Literatur-
  und Ref...
Das Spring Framework




  (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   3
Wer spricht zu Spring?

● Torsten Friebe
● GFU-Trainer seit 2006


● selbständiger IT-Berater seit 1997


● Schwerpunkt: A...
Was gibt’s zu sehen?

●   Folien (ca. 42 Minuten)
    – Ideen zu sauberen Code
    – Spring Framework
●   Live Demo (ca. 1...
Auf geht's...




(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   6
Jedes Projekt ist eine Reise




     (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   7
im goldenen Dreieck




 (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   8
(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   9
... doch war das das Ziel?




    (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   10
Der Guru sagt:
Das V-Modell löst alle Probleme




       (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   11
Was macht Projekte erfolgreich?

• Kriterien für das Produkt:
  – erfüllt den Zweck
  – billig in der Herstellung
  – leic...
Erfolgreiche Produkte




  (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   13
Falsche Anforderungen?




   (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   14
Anforderungsmanagment in
               der Praxis
     (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   15
Kommunikation




(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   16
(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   17
Big Design Up Front




Quelle: Neal Ford, http://www.nealford.com
                     (c) 2007-2009 / Torsten Friebe / G...
Clean Code




(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   19
(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   20
Sauberer Code

• Lesbare API
• Aussagekräftige Namen für Klassen,
  Methoden, Attribute
• gutes Fehler-Handling
• keine Ve...
Warum testen?

• „It is professionally irresponsible
   – to not write tests
   – to use the most cumbersome tools“
   – t...
Party time it's a Spring-Break




      (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   23
Spring und ...



   Software-
Entwicklung mit
Java Enterprise
  (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   24
Probleme bei der Java SE/EE
           Entwicklung
● Zu starke Abhängigkeit vom Container
● JEE-Anwendung insb. EJB's sind...
„J2EE-Development without EJB“

● Focus auf fachliche Anforderungen
● Elegantes OO Design das

  Wiederverwendung erlaubt
...
Spring – DAS JEE Framework?




      (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   27
Anti-Pattern: Silver Bullet

   „A silver bullet is a method to kill
    mythical creatures such as
    werewolves or a m...
Und was kann Spring?

● Vereinfachte und vereinheitlichte API-
  Schicht über viele Java-SE-APIs,
  Java-EE-APIs und Open-...
Einsatzbereiche von Spring

●   Enterprise Anwendungen basierend
    auf POJOs (Plain Old Java Objects)
    – Persistenzmi...
Ursprung und Verfügbarkeit

● Gegründet 2003 von Rod Johnson
  (Version 1.0 wurde 2004 publiziert)
● Spring wird heute von...
Module des Spring Frameworks




      (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   32
Inversion of Control (IoC)

●   IoC Paradigma beschreibt die
    Arbeitsweise von Frameworks
● Nicht die Anwendung steuert...
Dependency Injection (DI)

● Ist ein Entwurfsmuster („Fabrik“)
● Dient zur Erzeugung von

  Objektnetzen
● Überträgt die V...
IoC und Formen der DI

                      Inversion of Control
                          Framework verwaltet
          ...
Spring Konfigurationsdatei

● Beschreibt das Objektnetz
● Beinhaltet ganz normale Java Objekte

  (POJOs)
● Die Objekte he...
Singleton-Pattern

● Alle Spring-Beans sind Singletons
● Konsequenzen:


    – Methoden  müssen Thread-Safe sein
    – Ges...
Spring Konfiguration

<beans>
...                                            Spring
  <bean id=“pojo-1“ ...>              ...
Spring und ...




Persistenz

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   39
Persistenz mit Spring

●   Template und DaoSupport für:
    – JDBC
    – iBATIS
    – Hibernate
    – JPA – Java Persisten...
JDBC Template

●   Die JdbcTemplate-Klasse vereinfacht
    den Datenbankzugriff mittels JDBC
    – Keine  Programmierung v...
Vorteile des JDBC Templates

   Macht Benutzung von JDBC deutlich einfacher
   Wandelt Exceptions in RuntimeExceptions
 ...
Welche Technologie für den
         Datenbankzugriff?
●   JDBC für
    – Stored Procedures
    – Optimierte Massenabfragen...
Spring und ...




             AOP

(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   44
AOP

Aspektorientierte Programmierung
Konzept für Cross-Cutting Concerns

DRY-Prinzip: „Don't repeat yourself“

Kernbe...
AOP Kernbegriffe

   Aspect:
    Modularisierung eines Cross-Cutting
    Concerns
   Cross-Cutting Concern:
    Sind que...
AOP Kernbegriffe

   Join point:
    Ein Punkt während der
    Programmausführung, z.B. Aufruf
    einer Methode
   Poin...
AOP Kernbegriffe

   Advice:
    Aktion die zu einem Join point
    ausgeführt wird
   Advisor:
    Representiert einen ...
AOP Kernbegriffe

   Introduction:
    Das Einfügen von Methoden oder
    Feldern in eine Klasse
   Weaving:
    Zusamme...
Spring AOP

Basiert auf Dynamic Proxies
Einsatz u.a. bei


    – Tracing
    – Transaktionskontrolle
    – Security




...
Spring und AspectJ

● Spring 2.0 unterstützt AspectJ-Syntax
● Aspekte können über @Aspect-

  Annotation markiert werden
●...
Transaktionsmanagement

●   Spring unterstützt deklarative
    Transaktionssteuerung
● Verwendet Spring-AOP –
  Transactio...
Spring Transaktionsmanager

●   Abstraktion von API's für
    Transaktionen in Java
●   Spring bietet Implementierungen vo...
Spring und ...




   Web
Anwendungen
 (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   54
Model-View-Controller Pattern
                               Web-Client


    Darstellung                                 ...
Spring MVC

● Implementierung von MVC2
● Management von Web Komponenten

  (z.B. wie das Controller-Servlet)
● Request Rou...
Spring Web Flow

●   Spring Web Flow ergänzt Spring MVC
    – PageFlow Management
    – Management von conversational stat...
Integration anderer View-
      Technologien




    (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   58
Welche Technologie für die
          Webentwicklung?
●   Spring MVC für
    – Einfache   Web-Anwendungen
●   Spring WebFlo...
Spring und ...




Web Services

 (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   60
Spring und Web Services

●   Spring Framework und Spring Web
    Services
● Spring Remoting
● Spring mit Apache CXF (Celti...
Weitere Spring Features




   (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   62
Typische Architektur einer
   Spring-Anwendung




    (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   63
Ausblick auf Spring 3.0

   Unterstützung von Java SE >=1.5
   mehr Annotationen aus
       JSR 220 (EJB 3.0)
       J...
Demo




(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   65
Money, Money, Money




  (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   66
Fazit

● Leichte Testbarkeit von Code
● Programmierung gegen Interfaces


● Einfachere Nutzung von API's


● Code weitgehe...
Grüne Welle für Spring?




   (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   68
Die Schattenseiten

●   Spring ist kein Standard und wird
    wahrscheinlich nie Standard werden
●   noch Open-Source, abe...
Die Folgen




(c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   70
Glue Code

●   Beinhaltet keine
    Funktionalität
●   Klebt verschiedene
    Bibliotheken
    zusammen
●   Integriert and...
Code Cleaner

●   Überflüssigen Code
    entfernen
●   Refactorings
    konsquent
    durchführen
●   Duplikate entfernen
...
Anti-Pattern: Big Ball of Mud




     (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   73
Wie baue ich eine Stadt?




Quelle: CodeCity
http://www.inf.unisi.ch/phd/wettel/codecity.html

                        (c...
Das Spring Framework und ...


     das
Seminar-Angebot
      der
 GFU Cyrus AG
      (c) 2007-2009 / Torsten Friebe / GFU...
Spring Seminar bei der GFU

Erstes Seminar Mai 2007
seitdem 6 offene Seminare mit

35 Teilnehmern




         (c) 2007...
GFU Seminar S806

●   Zielgruppe:
    – Java   Entwickler und Architekten mit
        guten Java Kenntnissen
●   Agenda:
 ...
Weitere GFU-Seminare zu Spring

Spring kompakt
Spring und Datenbanken: Persistenz

mit JDBC, Hibernate, JPA und iBatis
...
Fit durch den Frühling mit ...

                          je 1 Tropfen:
                                  TDD
            ...
Und zum Schluss ...




             F&A

 (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   80
Literatur [1]
   [BHSS06] Hibernate/Persistenz in Java-Systemen mit Hibernate 3: R.
    Beeger, A. Haase, S. Roock, S. Sa...
Literatur [2]
   [LS07] Building Spring 2 Enterprise Applications: Seth Ladd, Bram Smeets.
    APress. 2007. ISBN: 159059...
Literatur [3]
   [Walls07] Spring im Einsatz: Craig Walls. Hanser Verlag. 2.Aufl. 2008.
    ISBN: 978-3-446-41240-8.
   ...
Referenzen [1]

[Spring] Spring Framework:
http://www.springframework.org/
[SpringSec] Spring Security (ehemals Acegi):

...
Referenzen [2]

[Hib] Hibernate:
http://www.hibernate.org/
[IBAT] IBATIS Framework:

http://ibatis.apache.org/
[JDO] JDO...
Referenzen [3]
[Eclipse] Eclipse:
http://www.eclipse.org
[Maven] Maven:

http://maven.apache.org
[Junit] JUnit:

http:/...
Referenzen [4]
JSF:
https://javaserverfaces.dev.java.net/
Apache MyFaces:

http://myfaces.apache.org/
Apache CXF:

http...
Referenzen [5]

[NFord] Neal Ford:


http://www.nealford.com
[New06] Ted Neward „The Vietnam of Computer Science“:


htt...
Kontakt & Lizenz
Autor:
 Torsten Friebe
 mailto:tfriebe@gmx.net

   Dieses Werk ist unter der creative commons
     Lizenz...
Upcoming SlideShare
Loading in...5
×

Das Java-Spring-Framework in der Praxis

5,292

Published on

Die Java EE Plattform hat sich in der server-seitigen Anwendungsentwicklung mit Java durchgesetzt. Doch dieses Standardmodell basiert auf den Enterprise JavaBeans, die einen schwergewichtigten Ansatz darstellen.

Mit dem Spring Framework gibt es jetzt eine so genannte "leichtgewichtige" Alternative.

Hierbei werden ausschließlich POJO (Plain Old Java Object) Objekte verwendet und die verwendeten Dienste der Java EE Plattform wie z.B. der Transaktionsdienst nur deskriptiv konfiguriert.

Der Vorteil liegt in der einfachen Entwicklung sowie der robusten Testbarkeit der Anwendung.

Einsatzmöglichkeiten des Spring Frameworks
Das Spring Framework
Tool Unterstützung für die Anwendungsentwicklung
Spring AOP
Spring und JDBC
Testen mit Spring
Spring und Java Standards

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,292
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
51
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Das Java-Spring-Framework in der Praxis

  1. 1. g GFU Cyrus AG Ihr Partner für IT Schulung "Semicolon" Vortragsreihe bei der GFU Vortrag am Dienstag, 12. Mai 2009 Thema Das Java Spring-Framework in der Praxis Einführung Peter Hecker, GFU Cyrus AG Vortrag Dipl. Inform. Torsten Friebe
  2. 2. Disclaimer Dieses Folienset ist nicht zum Selbststudium geeignet! Bitte konsultieren Sie die Literatur- und Referenzliste am Ende der Foliensammlung für Verweise zu Referenzhandbüchern und weiteren Informationsquellen! (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 1
  3. 3. Das Spring Framework (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 3
  4. 4. Wer spricht zu Spring? ● Torsten Friebe ● GFU-Trainer seit 2006 ● selbständiger IT-Berater seit 1997 ● Schwerpunkt: Architekturen mit Java ● Projekterfahrung mit Spring seit 2005 (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 4
  5. 5. Was gibt’s zu sehen? ● Folien (ca. 42 Minuten) – Ideen zu sauberen Code – Spring Framework ● Live Demo (ca. 10 Minuten) – mitein bisschen Java Code (frisch!) – und XML-Gemüse – angerichtet mit Eclipse, JUnit und Java (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 5
  6. 6. Auf geht's... (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 6
  7. 7. Jedes Projekt ist eine Reise (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 7
  8. 8. im goldenen Dreieck (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 8
  9. 9. (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 9
  10. 10. ... doch war das das Ziel? (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 10
  11. 11. Der Guru sagt: Das V-Modell löst alle Probleme (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 11
  12. 12. Was macht Projekte erfolgreich? • Kriterien für das Produkt: – erfüllt den Zweck – billig in der Herstellung – leicht zu warten – möglichst fehlerfrei (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 12
  13. 13. Erfolgreiche Produkte (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 13
  14. 14. Falsche Anforderungen? (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 14
  15. 15. Anforderungsmanagment in der Praxis (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 15
  16. 16. Kommunikation (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 16
  17. 17. (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 17
  18. 18. Big Design Up Front Quelle: Neal Ford, http://www.nealford.com (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 18
  19. 19. Clean Code (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 19
  20. 20. (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 20
  21. 21. Sauberer Code • Lesbare API • Aussagekräftige Namen für Klassen, Methoden, Attribute • gutes Fehler-Handling • keine Verschleierung der Problemstellung und -domäne • Klarer Kontext • Unit-Tests sind vorhanden (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 21
  22. 22. Warum testen? • „It is professionally irresponsible – to not write tests – to use the most cumbersome tools“ – to write unit tests without asserts! Quelle: Neal Ford, http://www.nealford.com (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 22
  23. 23. Party time it's a Spring-Break (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 23
  24. 24. Spring und ... Software- Entwicklung mit Java Enterprise (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 24
  25. 25. Probleme bei der Java SE/EE Entwicklung ● Zu starke Abhängigkeit vom Container ● JEE-Anwendung insb. EJB's sind schwer zu testen ● Verstoß gegen OO-Paradigma - gerade bei EJB 2.x ● Zu viele JEE spezifische Idiome ● Zu komplex und viel zu teuer (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 25
  26. 26. „J2EE-Development without EJB“ ● Focus auf fachliche Anforderungen ● Elegantes OO Design das Wiederverwendung erlaubt – Arbeiten mit Domain Objekten ● Leichte Testbarkeit der Anwendung ● Steigerung der Produktivität ● Einfachheit (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 26
  27. 27. Spring – DAS JEE Framework? (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 27
  28. 28. Anti-Pattern: Silver Bullet  „A silver bullet is a method to kill mythical creatures such as werewolves or a metaphor for any solution of extreme effectiveness.“ (aus Wikipedia.org) siehe auch Anti-Pattern „Golden Hammer“ (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 28
  29. 29. Und was kann Spring? ● Vereinfachte und vereinheitlichte API- Schicht über viele Java-SE-APIs, Java-EE-APIs und Open-Source- Frameworks ● Aufbau von Objektnetzen mit Dependency Injection (DI) ● Unterstützung für aspektorientierte Programmierung (AOP) (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 29
  30. 30. Einsatzbereiche von Spring ● Enterprise Anwendungen basierend auf POJOs (Plain Old Java Objects) – Persistenzmit ORM oder nativen JDBC – Webanwendungen mit Spring MVC und WebFlow – Web Services mit Spring Web Services – u.v.m. (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 30
  31. 31. Ursprung und Verfügbarkeit ● Gegründet 2003 von Rod Johnson (Version 1.0 wurde 2004 publiziert) ● Spring wird heute von SpringSource Inc. entwickelt ● Ist Open-Source (Apache License 2.0) und kann kostenfrei eingesetzt werden ● Download unter: http://www.springframework.org/ (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 31
  32. 32. Module des Spring Frameworks (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 32
  33. 33. Inversion of Control (IoC) ● IoC Paradigma beschreibt die Arbeitsweise von Frameworks ● Nicht die Anwendung steuert den Kontrollfluss, sondern das Framework ● Beispiel in Java sind Listener ● Sogenanntes „Hollywood-Prinzip“: "don't call us, we'll call you" (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 33
  34. 34. Dependency Injection (DI) ● Ist ein Entwurfsmuster („Fabrik“) ● Dient zur Erzeugung von Objektnetzen ● Überträgt die Verantwortung für das Erzeugen von Objekten an das Framework (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 34
  35. 35. IoC und Formen der DI Inversion of Control Framework verwaltet Lebenszyklus der Objekte Dependency Lookup Dependency Injection Erzeugung der Objekte durch Objekte werden über Sprach-Level Container-spezifische API Abhängigkeiten erzeugt Setter Injection Constructor Injection Objekte werden JavaBean Objekte werden über Eigenschaften erzeugt Konstruktor-Argumente erzeugt (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 35
  36. 36. Spring Konfigurationsdatei ● Beschreibt das Objektnetz ● Beinhaltet ganz normale Java Objekte (POJOs) ● Die Objekte heissen „Spring-Beans“ ● Jedes Spring-Bean hat einen Namen bzw. eine ID – undman kann diesem einen Wert oder eine Referenz zuweisen (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 36
  37. 37. Singleton-Pattern ● Alle Spring-Beans sind Singletons ● Konsequenzen: – Methoden müssen Thread-Safe sein – Geschäftsobjekte sollten nicht über die Spring Konfiguration erzeugt werden – Der Scope „Prototype“ erzeugt mehrere Instanzen eines Spring-Beans (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 37
  38. 38. Spring Konfiguration <beans> ... Spring <bean id=“pojo-1“ ...> Container create pojo-1 <... ref=“pojo-2“/> </bean> <bean id=“pojo-2“ ...> create <... ref=“pojo-3“/> getBean(„pojo-1“) </bean> <bean id=“pojo-3“ ...> <... value=“Hello!“/> create pojo-2 </bean> ... Application </beans> pojo-3 (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 38
  39. 39. Spring und ... Persistenz (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 39
  40. 40. Persistenz mit Spring ● Template und DaoSupport für: – JDBC – iBATIS – Hibernate – JPA – Java Persistence API (EJB 3.0) – JDO – Java Data Objects – Oracle TopLink (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 40
  41. 41. JDBC Template ● Die JdbcTemplate-Klasse vereinfacht den Datenbankzugriff mittels JDBC – Keine Programmierung von try/catch/finally nötig – Vereinheitlichte SQLExceptions – Austauschbare Datenquellen (javax.sql.DataSource) (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 41
  42. 42. Vorteile des JDBC Templates  Macht Benutzung von JDBC deutlich einfacher  Wandelt Exceptions in RuntimeExceptions um  Isoliert vom Rest von Spring nutzbar (spring- jdbc.jar)  Verwenden von:  RowMapper oder  ResultSetExtractor in query Methoden (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 42
  43. 43. Welche Technologie für den Datenbankzugriff? ● JDBC für – Stored Procedures – Optimierte Massenabfragen ● iBATIS für – Datenbank-zentrierte Systeme ● O/R Mapper wie Hibernate/JPA für – Komplexe Datenmodelle (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 43
  44. 44. Spring und ... AOP (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 44
  45. 45. AOP Aspektorientierte Programmierung Konzept für Cross-Cutting Concerns DRY-Prinzip: „Don't repeat yourself“ Kernbegriffe:  Pointcut, Join point, Advice, Advisor,... (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 45
  46. 46. AOP Kernbegriffe  Aspect: Modularisierung eines Cross-Cutting Concerns  Cross-Cutting Concern: Sind querschnittliche Belange einer Software wie z.B. Logging, Tracing, Security und Fehlerbehandlung (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 46
  47. 47. AOP Kernbegriffe  Join point: Ein Punkt während der Programmausführung, z.B. Aufruf einer Methode  Pointcut: Ist eine Beschreibung (Muster) für einen Join point, z.B.: @Pointcut("execution(public * *(..))") (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 47
  48. 48. AOP Kernbegriffe  Advice: Aktion die zu einem Join point ausgeführt wird  Advisor: Representiert einen Aspekt durch das Advice und den Pointcut. (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 48
  49. 49. AOP Kernbegriffe  Introduction: Das Einfügen von Methoden oder Feldern in eine Klasse  Weaving: Zusammenführen (einweben) von Aspekten in bestehenden Programmcode (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 49
  50. 50. Spring AOP Basiert auf Dynamic Proxies Einsatz u.a. bei – Tracing – Transaktionskontrolle – Security (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 50
  51. 51. Spring und AspectJ ● Spring 2.0 unterstützt AspectJ-Syntax ● Aspekte können über @Aspect- Annotation markiert werden ● Konfiguration mit <aop:*/> in der Spring-Konfigurationsdatei (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 51
  52. 52. Transaktionsmanagement ● Spring unterstützt deklarative Transaktionssteuerung ● Verwendet Spring-AOP – TransactionInterceptor ● ermöglicht hohe Flexibilität, z.B. Standalone-Betrieb oder Ablauf im J2EE-Container (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 52
  53. 53. Spring Transaktionsmanager ● Abstraktion von API's für Transaktionen in Java ● Spring bietet Implementierungen von PlatformTransactionManager für – JDBC – ORM-Frameworks wie z.B. Hibernate – JMS, JCA, JTA (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 53
  54. 54. Spring und ... Web Anwendungen (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 54
  55. 55. Model-View-Controller Pattern Web-Client Darstellung Umwandlung erzeugen der Parameter <<Präsentationsschicht>> <<Geschäftslogikschicht>> View Controller <<Datenschicht>> Model <<Web-Container>> (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 55
  56. 56. Spring MVC ● Implementierung von MVC2 ● Management von Web Komponenten (z.B. wie das Controller-Servlet) ● Request Routing zu Handlern ● Data Binding und Validierung ● Testbarkeit von Web Komponenten (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 56
  57. 57. Spring Web Flow ● Spring Web Flow ergänzt Spring MVC – PageFlow Management – Management von conversational state ● Anwendungsgebiete: – Komplexe zustandsbehafte Seiten Abfolgen – Kontrollierte Navigation – Flow Historie (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 57
  58. 58. Integration anderer View- Technologien (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 58
  59. 59. Welche Technologie für die Webentwicklung? ● Spring MVC für – Einfache Web-Anwendungen ● Spring WebFlow für – Komplexere, statusbehaftete Anwendungen mit Seiten-Navigation ● Spring und JSF für – Web-Anwendungen mit UI-Komponenten (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 59
  60. 60. Spring und ... Web Services (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 60
  61. 61. Spring und Web Services ● Spring Framework und Spring Web Services ● Spring Remoting ● Spring mit Apache CXF (Celtix+XFire) ● Spring und Apache Axis / Axis2 (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 61
  62. 62. Weitere Spring Features (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 62
  63. 63. Typische Architektur einer Spring-Anwendung (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 63
  64. 64. Ausblick auf Spring 3.0  Unterstützung von Java SE >=1.5  mehr Annotationen aus  JSR 220 (EJB 3.0)  JSR 250 (Common Annotations)  JSR 299 (Web Beans)  RESTful im Web  Expression Language (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 64
  65. 65. Demo (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 65
  66. 66. Money, Money, Money (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 66
  67. 67. Fazit ● Leichte Testbarkeit von Code ● Programmierung gegen Interfaces ● Einfachere Nutzung von API's ● Code weitgehend unabhängig vom Spring Framework ● Keine Zwänge: Man muss nicht alles von Spring nutzen (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 67
  68. 68. Grüne Welle für Spring? (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 68
  69. 69. Die Schattenseiten ● Spring ist kein Standard und wird wahrscheinlich nie Standard werden ● noch Open-Source, aber wie geht es mit SpringSource Inc. weiter? (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 69
  70. 70. Die Folgen (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 70
  71. 71. Glue Code ● Beinhaltet keine Funktionalität ● Klebt verschiedene Bibliotheken zusammen ● Integriert andere Systeme (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 71
  72. 72. Code Cleaner ● Überflüssigen Code entfernen ● Refactorings konsquent durchführen ● Duplikate entfernen ● Zyklische Abhängigkeiten vermeiden (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 72
  73. 73. Anti-Pattern: Big Ball of Mud (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 73
  74. 74. Wie baue ich eine Stadt? Quelle: CodeCity http://www.inf.unisi.ch/phd/wettel/codecity.html (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 74
  75. 75. Das Spring Framework und ... das Seminar-Angebot der GFU Cyrus AG (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 75
  76. 76. Spring Seminar bei der GFU Erstes Seminar Mai 2007 seitdem 6 offene Seminare mit 35 Teilnehmern (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 76
  77. 77. GFU Seminar S806 ● Zielgruppe: – Java Entwickler und Architekten mit guten Java Kenntnissen ● Agenda: – http://www.gfu.net/seminare-schulungen-kurse/java_sk5/spring_framework_s806.html ● Dauer: – 3 Tage (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 77
  78. 78. Weitere GFU-Seminare zu Spring Spring kompakt Spring und Datenbanken: Persistenz mit JDBC, Hibernate, JPA und iBatis Spring im Web mit WebFlow und JSF Web Services mit Spring (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 78
  79. 79. Fit durch den Frühling mit ... je 1 Tropfen: TDD OOP IoC + DI AOP ... führt zu Wohlbefinden (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 79
  80. 80. Und zum Schluss ... F&A (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 80
  81. 81. Literatur [1]  [BHSS06] Hibernate/Persistenz in Java-Systemen mit Hibernate 3: R. Beeger, A. Haase, S. Roock, S. Sanitz. dpunkt.verlag. 2006. ISBN: 3-89864- 371-9.  [FTW07] Java Web Services mit Apache Axis2: Thilo Frotscher, Marc Teufel, Dapeng Wang. Entwickler.Press. 2007. ISBN: 978-3-935042-81-9.  [HM05] Pro Spring: From Professional to Expert: Rob Harrop, Jan Machacek. APress. 2005. ISBN: 1590594614.  [Jo02] Expert One-on-one J2EE Design and Development: Rod Johnson. Wiley & Sons. 2002. ISBN: 0764543857.  [JH04] Expert One-on-One – J2EE Development without EJB: Rod Johnson, Jürgen Höller. Hungry Minds Inc,U.S. 2004. ISBN: 0764558315.  [JHA05] Professional Java Development with the Spring Framework: Rod Johnson, Jürgen Höller, Alef Arendsen. Wiley & Sons. 2005. ISBN: 0764574833. (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 81
  82. 82. Literatur [2]  [LS07] Building Spring 2 Enterprise Applications: Seth Ladd, Bram Smeets. APress. 2007. ISBN: 1590599187.  [LD06] Expert Spring MVC and Web Flow: Seth Ladd, Darren Davison, Steven Devijver. APress. 2006. ISBN: 159059584X.  [LR06] J2EE und JBoss. Verteilte Enterprise Applikationen auf der Basis von J2EE, JBoss & Eclipse: T. Langner, D. Reiberg. Hanser Verlag. 2006. ISBN: 3-446-40508-9.  [NSch05] Java und XML: Stephan Niedermeier, Michael Scholz. Galileo Press. 2005. ISBN: 3898426467.  [Ull07] Java ist auch eine Insel: Christian Ullenboom. Galileo Computing. ISBN: 3-89842-747-1. http://www.galileocomputing.de/1082?GPP=opjV.  [WBFT04] Java Web Services mit Apache Axis: Dapeng Wang (Herausgeber), Thomas Bayer, Thilo Frotscher, Marc Teufel. Entwickler.Press. 2004. ISBN: 3935042574. (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 82
  83. 83. Literatur [3]  [Walls07] Spring im Einsatz: Craig Walls. Hanser Verlag. 2.Aufl. 2008. ISBN: 978-3-446-41240-8.  [Wolff07] Spring 2. Framework für die Java-Entwicklung: Eberhard Wolff. Dpunkt Verlag. 2007. ISBN: 978-3-89864-465-5.  [ZLMG08] Spring 2.5: Eine pragmatische Einführung: Alfred Zeitner, Birgit Linner, Martin Maier, Thorsten Göckeler .Addison-Wesley. 2008. ISBN: 978-3827326225. (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 83
  84. 84. Referenzen [1] [Spring] Spring Framework: http://www.springframework.org/ [SpringSec] Spring Security (ehemals Acegi): http://static.springsource.org/spring-security/ [SpringWS] Spring Web Services: http://www.springframework.org/spring-ws [SpringIDE] Spring IDE: http://springide.org/ [SpringSource] SpringSource Inc. ehemals Interfaces21: http://www.springsource.com/ (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 84
  85. 85. Referenzen [2] [Hib] Hibernate: http://www.hibernate.org/ [IBAT] IBATIS Framework: http://ibatis.apache.org/ [JDO] JDO: http://java.sun.com/products/jdo/ [JPA] JPA: http://java.sun.com/javaee/technologies/persistence.jsp [ELINK] Eclipse Link: http://www.eclipse.org/eclipselink/ (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 85
  86. 86. Referenzen [3] [Eclipse] Eclipse: http://www.eclipse.org [Maven] Maven: http://maven.apache.org [Junit] JUnit: http://www.junit.org [TSS] TheServerSide: http://www.theserverside.com/ [WORDL] Wordl (World Cloud): http://www.wordle.net [CCIT] CodeCity: http://www.inf.unisi.ch/phd/wettel/codecity.html (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 86
  87. 87. Referenzen [4] JSF: https://javaserverfaces.dev.java.net/ Apache MyFaces: http://myfaces.apache.org/ Apache CXF: http://cxf.apache.org/ Apache Axis2: http://ws.apache.org/axis2/ (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 87
  88. 88. Referenzen [5] [NFord] Neal Ford:  http://www.nealford.com [New06] Ted Neward „The Vietnam of Computer Science“:  http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx [SAmb] Scott Ambler:  http://www.ambysoft.com/ [Wlo08] Nils Wloka „Dependency Injection für Geschäftsobjekte“:  http://87.230.78.21:8080/pages/viewpageattachments.action?pageId=1179684 (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 88
  89. 89. Kontakt & Lizenz Autor: Torsten Friebe mailto:tfriebe@gmx.net Dieses Werk ist unter der creative commons Lizenz veröffentlicht. Inhalt darf vervielfältigt und verbreitet werden Keine kommerzielle Nutzung Weitergabe nur unter Bearbeitung ist erlaubt gleichen Bedingungen Weitere Informationen unter: http://creativecommons.org/licenses/by-nc-sa/3.0/deed.de (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 89
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×