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
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
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: Architekturen mit Java


● Projekterfahrung mit Spring seit 2005




         (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   4
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
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
  – leicht zu warten
  – möglichst fehlerfrei




            (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   12
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 / GFU Cyrus AG   18
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 Verschleierung der
  Problemstellung und -domäne
• Klarer Kontext
• Unit-Tests sind vorhanden
         (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   21
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
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

  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
„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
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 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
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
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
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
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 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
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
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
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
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
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
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 Persistence API (EJB 3.0)
    – JDO – Java Data Objects
    – Oracle TopLink

               (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   40
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
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
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
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“

Kernbegriffe:

       Pointcut, Join point, Advice, Advisor,...




               (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   45
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
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
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
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
Spring AOP

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


    – Tracing
    – Transaktionskontrolle
    – Security




             (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   50
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
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
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
Spring und ...




   Web
Anwendungen
 (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   54
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
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
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
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 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
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 (Celtix+XFire)


● Spring und Apache Axis / Axis2




           (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   61
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)
       JSR 250 (Common Annotations)
       JSR 299 (Web Beans)
   RESTful im Web
   Expression Language

              (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   64
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 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
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, aber wie geht es
    mit SpringSource Inc. weiter?




           (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   69
Die Folgen




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

●   Beinhaltet keine
    Funktionalität
●   Klebt verschiedene
    Bibliotheken
    zusammen
●   Integriert andere
    Systeme



              (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   71
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
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) 2007-2009 / Torsten Friebe / GFU Cyrus AG   74
Das Spring Framework und ...


     das
Seminar-Angebot
      der
 GFU Cyrus AG
      (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG   75
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
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
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
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
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. 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
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
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
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
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
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
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
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
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

Das Java-Spring-Framework in der Praxis

  • 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.
    Disclaimer DiesesFolienset 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.
    Das Spring Framework (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 3
  • 4.
    Wer spricht zuSpring? ● 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.
    Was gibt’s zusehen? ● 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.
    Auf geht's... (c) 2007-2009/ Torsten Friebe / GFU Cyrus AG 6
  • 7.
    Jedes Projekt isteine Reise (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 7
  • 8.
    im goldenen Dreieck (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 8
  • 9.
    (c) 2007-2009 /Torsten Friebe / GFU Cyrus AG 9
  • 10.
    ... doch wardas das Ziel? (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 10
  • 11.
    Der Guru sagt: DasV-Modell löst alle Probleme (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 11
  • 12.
    Was macht Projekteerfolgreich? • 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.
    Erfolgreiche Produkte (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 13
  • 14.
    Falsche Anforderungen? (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 14
  • 15.
    Anforderungsmanagment in der Praxis (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 15
  • 16.
    Kommunikation (c) 2007-2009 /Torsten Friebe / GFU Cyrus AG 16
  • 17.
    (c) 2007-2009 /Torsten Friebe / GFU Cyrus AG 17
  • 18.
    Big Design UpFront Quelle: Neal Ford, http://www.nealford.com (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 18
  • 19.
    Clean Code (c) 2007-2009/ Torsten Friebe / GFU Cyrus AG 19
  • 20.
    (c) 2007-2009 /Torsten Friebe / GFU Cyrus AG 20
  • 21.
    Sauberer Code • LesbareAPI • 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.
    Warum testen? • „Itis 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.
    Party time it'sa Spring-Break (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 23
  • 24.
    Spring und ... Software- Entwicklung mit Java Enterprise (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 24
  • 25.
    Probleme bei derJava 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.
    „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.
    Spring – DASJEE Framework? (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 27
  • 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.
    Und was kannSpring? ● 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.
    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.
    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.
    Module des SpringFrameworks (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 32
  • 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.
    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.
    IoC und Formender 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.
    Spring Konfigurationsdatei ● Beschreibtdas 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.
    Singleton-Pattern ● Alle Spring-Beanssind 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.
    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.
    Spring und ... Persistenz (c)2007-2009 / Torsten Friebe / GFU Cyrus AG 39
  • 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.
    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.
    Vorteile des JDBCTemplates  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.
    Welche Technologie fürden 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.
    Spring und ... AOP (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 44
  • 45.
    AOP Aspektorientierte Programmierung Konzept fürCross-Cutting Concerns DRY-Prinzip: „Don't repeat yourself“ Kernbegriffe:  Pointcut, Join point, Advice, Advisor,... (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 45
  • 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.
    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.
    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.
    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.
    Spring AOP Basiert aufDynamic Proxies Einsatz u.a. bei – Tracing – Transaktionskontrolle – Security (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 50
  • 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.
    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.
    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.
    Spring und ... Web Anwendungen (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 54
  • 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.
    Spring MVC ● Implementierungvon 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.
    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.
    Integration anderer View- Technologien (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 58
  • 59.
    Welche Technologie fürdie 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.
    Spring und ... WebServices (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 60
  • 61.
    Spring und WebServices ● 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.
    Weitere Spring Features (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 62
  • 63.
    Typische Architektur einer Spring-Anwendung (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 63
  • 64.
    Ausblick auf Spring3.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.
    Demo (c) 2007-2009 /Torsten Friebe / GFU Cyrus AG 65
  • 66.
    Money, Money, Money (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 66
  • 67.
    Fazit ● Leichte Testbarkeitvon 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.
    Grüne Welle fürSpring? (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 68
  • 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.
    Die Folgen (c) 2007-2009/ Torsten Friebe / GFU Cyrus AG 70
  • 71.
    Glue Code ● Beinhaltet keine Funktionalität ● Klebt verschiedene Bibliotheken zusammen ● Integriert andere Systeme (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 71
  • 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.
    Anti-Pattern: Big Ballof Mud (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 73
  • 74.
    Wie baue icheine Stadt? Quelle: CodeCity http://www.inf.unisi.ch/phd/wettel/codecity.html (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 74
  • 75.
    Das Spring Frameworkund ... das Seminar-Angebot der GFU Cyrus AG (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 75
  • 76.
    Spring Seminar beider GFU Erstes Seminar Mai 2007 seitdem 6 offene Seminare mit 35 Teilnehmern (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 76
  • 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.
    Weitere GFU-Seminare zuSpring 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.
    Fit durch denFrühling mit ... je 1 Tropfen: TDD OOP IoC + DI AOP ... führt zu Wohlbefinden (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 79
  • 80.
    Und zum Schluss... F&A (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 80
  • 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.
    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.
    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.
    Referenzen [1] [Spring] SpringFramework: 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.
    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.
    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.
    Referenzen [4] JSF: https://javaserverfaces.dev.java.net/ Apache MyFaces: http://myfaces.apache.org/ ApacheCXF: http://cxf.apache.org/ Apache Axis2: http://ws.apache.org/axis2/ (c) 2007-2009 / Torsten Friebe / GFU Cyrus AG 87
  • 88.
    Referenzen [5] [NFord] NealFord:  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.
    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