1. Q UELLEN
S PRING IN R ANDI 2 ACTION
RANDI2 DAY OF C ODE
Johannes Thönes
jthoenes@users.sourceforge.net
RANDI2 Core Development Team
28.11.2008
J OHANNES T HÖNES S PRING
2. Q UELLEN
I NTENTION
P ROBLEMBESCHREIBUNG
Expert One-to-One: J2EE Design and Development [JO]
Reaktion auf die Komplexe EJB 2.0 Spezifikation
Ziel: reinen POJO Beans
J OHANNES T HÖNES S PRING
3. Q UELLEN
I NTENTION
P ROBLEMBESCHREIBUNG
Expert One-to-One: J2EE Design and Development [JO]
Reaktion auf die Komplexe EJB 2.0 Spezifikation
Ziel: reinen POJO Beans
J OHANNES T HÖNES S PRING
4. Q UELLEN
I NTENTION
P ROBLEMBESCHREIBUNG
Expert One-to-One: J2EE Design and Development [JO]
Reaktion auf die Komplexe EJB 2.0 Spezifikation
Ziel: reinen POJO Beans
J OHANNES T HÖNES S PRING
5. Q UELLEN
L IGHTWEIGHT
E IGENSCHAFTEN
Keine Abhängigkeiten zu Spring in Klassen
Verwendung von Features seperat möglich
Spring hat keine Meinung
J OHANNES T HÖNES S PRING
6. Q UELLEN
L IGHTWEIGHT
E IGENSCHAFTEN
Keine Abhängigkeiten zu Spring in Klassen
Verwendung von Features seperat möglich
Spring hat keine Meinung
J OHANNES T HÖNES S PRING
7. Q UELLEN
L IGHTWEIGHT
E IGENSCHAFTEN
Keine Abhängigkeiten zu Spring in Klassen
Verwendung von Features seperat möglich
Spring hat keine Meinung
J OHANNES T HÖNES S PRING
8. Q UELLEN
D EPENDENCY I NJECTION 1
D EFINITION
Transparents Erfüllen(injection) von
Abhängigkeiten(dependency)
Inversion of Control
Initialisierung und Bereitstellen von Spring Beans (von
Spring verwaltete POJOs)
Erfüllen der Abhängigkeiten/Auto-Wiring
J OHANNES T HÖNES S PRING
9. Q UELLEN
D EPENDENCY I NJECTION 1
D EFINITION
Transparents Erfüllen(injection) von
Abhängigkeiten(dependency)
Inversion of Control
Initialisierung und Bereitstellen von Spring Beans (von
Spring verwaltete POJOs)
Erfüllen der Abhängigkeiten/Auto-Wiring
J OHANNES T HÖNES S PRING
10. Q UELLEN
D EPENDENCY I NJECTION 1
D EFINITION
Transparents Erfüllen(injection) von
Abhängigkeiten(dependency)
Inversion of Control
Initialisierung und Bereitstellen von Spring Beans (von
Spring verwaltete POJOs)
Erfüllen der Abhängigkeiten/Auto-Wiring
J OHANNES T HÖNES S PRING
11. Q UELLEN
D EPENDENCY I NJECTION 1
D EFINITION
Transparents Erfüllen(injection) von
Abhängigkeiten(dependency)
Inversion of Control
Initialisierung und Bereitstellen von Spring Beans (von
Spring verwaltete POJOs)
Erfüllen der Abhängigkeiten/Auto-Wiring
J OHANNES T HÖNES S PRING
12. Q UELLEN
D EPENDENCY I NJECTION 2
E XAMPLE
public class DataAccessObject {
private Database database;
// Some Code
}
public class Database {
// Some Code
}
J OHANNES T HÖNES S PRING
13. Q UELLEN
D EPENDENCY I NJECTION 3
E XAMPLE
public class DataAccessObject {
@Autowire
private Database database;
}
J OHANNES T HÖNES S PRING
14. Q UELLEN
A SPECT- ORIENTATED P ROGRAMMING
D EFINITION
CCC: Eine bestimmte Anforderung(concern), die an
verschiedenen Stellen besteht, die fachlich nichts
miteinander zu tun haben (cross-cutting).
Joint Point: Punktdefinition an dem eine bestimmte
Anforderung umgesetzt werden müsste.
Advice: Was soll in welcher Situation ausgeführt werden?
Aspect: Joint Point + Advice
Pointcut: Einzelner Punkt, an dem der Advice geheftet
wird.
Weaving: Einfügen (Weben) der Advices an die Pointcuts.
J OHANNES T HÖNES S PRING
15. Q UELLEN
A SPECT- ORIENTATED P ROGRAMMING
D EFINITION
CCC: Eine bestimmte Anforderung(concern), die an
verschiedenen Stellen besteht, die fachlich nichts
miteinander zu tun haben (cross-cutting).
Joint Point: Punktdefinition an dem eine bestimmte
Anforderung umgesetzt werden müsste.
Advice: Was soll in welcher Situation ausgeführt werden?
Aspect: Joint Point + Advice
Pointcut: Einzelner Punkt, an dem der Advice geheftet
wird.
Weaving: Einfügen (Weben) der Advices an die Pointcuts.
J OHANNES T HÖNES S PRING
16. Q UELLEN
A SPECT- ORIENTATED P ROGRAMMING
D EFINITION
CCC: Eine bestimmte Anforderung(concern), die an
verschiedenen Stellen besteht, die fachlich nichts
miteinander zu tun haben (cross-cutting).
Joint Point: Punktdefinition an dem eine bestimmte
Anforderung umgesetzt werden müsste.
Advice: Was soll in welcher Situation ausgeführt werden?
Aspect: Joint Point + Advice
Pointcut: Einzelner Punkt, an dem der Advice geheftet
wird.
Weaving: Einfügen (Weben) der Advices an die Pointcuts.
J OHANNES T HÖNES S PRING
17. Q UELLEN
A SPECT- ORIENTATED P ROGRAMMING
D EFINITION
CCC: Eine bestimmte Anforderung(concern), die an
verschiedenen Stellen besteht, die fachlich nichts
miteinander zu tun haben (cross-cutting).
Joint Point: Punktdefinition an dem eine bestimmte
Anforderung umgesetzt werden müsste.
Advice: Was soll in welcher Situation ausgeführt werden?
Aspect: Joint Point + Advice
Pointcut: Einzelner Punkt, an dem der Advice geheftet
wird.
Weaving: Einfügen (Weben) der Advices an die Pointcuts.
J OHANNES T HÖNES S PRING
18. Q UELLEN
A SPECT- ORIENTATED P ROGRAMMING
D EFINITION
CCC: Eine bestimmte Anforderung(concern), die an
verschiedenen Stellen besteht, die fachlich nichts
miteinander zu tun haben (cross-cutting).
Joint Point: Punktdefinition an dem eine bestimmte
Anforderung umgesetzt werden müsste.
Advice: Was soll in welcher Situation ausgeführt werden?
Aspect: Joint Point + Advice
Pointcut: Einzelner Punkt, an dem der Advice geheftet
wird.
Weaving: Einfügen (Weben) der Advices an die Pointcuts.
J OHANNES T HÖNES S PRING
19. Q UELLEN
A SPECT- ORIENTATED P ROGRAMMING
D EFINITION
CCC: Eine bestimmte Anforderung(concern), die an
verschiedenen Stellen besteht, die fachlich nichts
miteinander zu tun haben (cross-cutting).
Joint Point: Punktdefinition an dem eine bestimmte
Anforderung umgesetzt werden müsste.
Advice: Was soll in welcher Situation ausgeführt werden?
Aspect: Joint Point + Advice
Pointcut: Einzelner Punkt, an dem der Advice geheftet
wird.
Weaving: Einfügen (Weben) der Advices an die Pointcuts.
J OHANNES T HÖNES S PRING
20. Q UELLEN
A SPECT- ORIENTATED P ROGRAMMING
D EFINITION
CCC: Eine bestimmte Anforderung(concern), die an
verschiedenen Stellen besteht, die fachlich nichts
miteinander zu tun haben (cross-cutting).
Joint Point: Punktdefinition an dem eine bestimmte
Anforderung umgesetzt werden müsste.
Advice: Was soll in welcher Situation ausgeführt werden?
Aspect: Joint Point + Advice
Pointcut: Einzelner Punkt, an dem der Advice geheftet
wird.
Weaving: Einfügen (Weben) der Advices an die Pointcuts.
J OHANNES T HÖNES S PRING
21. Q UELLEN
Q UELLEN
http://delicious.com/jthoenes/jthoenes_spring_
vortrag_20081028
R. Johnson: Expert One-on-one J2EE Design and
Development. Wiley & Sons 2003. 978-0764543852
C. Walls: Spring im Einsatz. Carl Hanser Verlag 2008.
978-3-446-41240-8
E. Wolff: Spring 2. Frameworks für die Java-Entwicklung.
dpunkt Verlag 2007. Spring 2. Frameworks für die
Java-Entwicklung
J OHANNES T HÖNES S PRING