SlideShare une entreprise Scribd logo
1  sur  21
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
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
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
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
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
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
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
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
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
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
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
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
Q UELLEN


D EPENDENCY I NJECTION 3




  E XAMPLE
  public class DataAccessObject {
       @Autowire
       private Database database;
  }




                 J OHANNES T HÖNES   S PRING
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
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
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
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
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
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
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
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

Contenu connexe

En vedette

Arte griego
Arte griegoArte griego
Arte griegoMagda
 
Ticalia redes sociales federaciones deportivas
Ticalia redes sociales   federaciones deportivasTicalia redes sociales   federaciones deportivas
Ticalia redes sociales federaciones deportivasJuan Iraola
 
Stadionzeitung TuS Geretsried - ASV Dachau
Stadionzeitung TuS Geretsried - ASV DachauStadionzeitung TuS Geretsried - ASV Dachau
Stadionzeitung TuS Geretsried - ASV DachauChristoph1990
 
como crear un blog?
como crear un blog?como crear un blog?
como crear un blog?uib
 
Infarto De Miocardio.Ppt Trabajo Cmc
Infarto De Miocardio.Ppt Trabajo CmcInfarto De Miocardio.Ppt Trabajo Cmc
Infarto De Miocardio.Ppt Trabajo CmcMarinaMartinRoman
 
kinderwelten 2010
kinderwelten 2010kinderwelten 2010
kinderwelten 2010tspe
 
taller de herramientas informaticas
taller de herramientas informaticastaller de herramientas informaticas
taller de herramientas informaticasJESSICA MORALES
 
Arte GóTico 01
Arte GóTico 01Arte GóTico 01
Arte GóTico 01Magda
 
Mejorando la Salud Sexual y Reproductiva
Mejorando la Salud Sexual y Reproductiva Mejorando la Salud Sexual y Reproductiva
Mejorando la Salud Sexual y Reproductiva PROSALUD VENEZUELA
 
Lectura de la Constitucion
Lectura de la ConstitucionLectura de la Constitucion
Lectura de la ConstitucionVBanos
 

En vedette (14)

Presentación1
Presentación1Presentación1
Presentación1
 
Arte griego
Arte griegoArte griego
Arte griego
 
Ticalia redes sociales federaciones deportivas
Ticalia redes sociales   federaciones deportivasTicalia redes sociales   federaciones deportivas
Ticalia redes sociales federaciones deportivas
 
Afrikaans vir beginners
Afrikaans vir beginnersAfrikaans vir beginners
Afrikaans vir beginners
 
Stadionzeitung TuS Geretsried - ASV Dachau
Stadionzeitung TuS Geretsried - ASV DachauStadionzeitung TuS Geretsried - ASV Dachau
Stadionzeitung TuS Geretsried - ASV Dachau
 
como crear un blog?
como crear un blog?como crear un blog?
como crear un blog?
 
Infarto De Miocardio.Ppt Trabajo Cmc
Infarto De Miocardio.Ppt Trabajo CmcInfarto De Miocardio.Ppt Trabajo Cmc
Infarto De Miocardio.Ppt Trabajo Cmc
 
kinderwelten 2010
kinderwelten 2010kinderwelten 2010
kinderwelten 2010
 
taller de herramientas informaticas
taller de herramientas informaticastaller de herramientas informaticas
taller de herramientas informaticas
 
Aborto
AbortoAborto
Aborto
 
Arte GóTico 01
Arte GóTico 01Arte GóTico 01
Arte GóTico 01
 
Mejorando la Salud Sexual y Reproductiva
Mejorando la Salud Sexual y Reproductiva Mejorando la Salud Sexual y Reproductiva
Mejorando la Salud Sexual y Reproductiva
 
Lectura de la Constitucion
Lectura de la ConstitucionLectura de la Constitucion
Lectura de la Constitucion
 
Work_Atelier Manferdini
Work_Atelier ManferdiniWork_Atelier Manferdini
Work_Atelier Manferdini
 

Spring in RANDI2 Action

  • 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