SlideShare une entreprise Scribd logo
Introduction à Spring Présentation du framework java/J2EE numéro 1 Nathaniel Richand 05/2009
Introduction à Spring Place de Spring dans l’écosystème Java Que fait Spring? Injection de dépendance et AOP Exemple de facilitateur Conclusion
Place de Spring dans l’écosystème Java
Qu’est ce que Spring? Spring est un  framework  de développement Java basé sur la notion de  conteneur léger . Spring existe depuis  2002 , la dernière version est la  2.5 . La version 3.0 est en béta. Spring est un projet  Open Source  de licence Apache dont le support et les évolutions sont réalisées par la société SpringSource. Spring est composé de très nombreuses  briques , mais l’on peut utiliser uniquement les parties qui nous intéresse sans se soucier des autres.
Concepts de Spring A partir des critiques portés sur la plateforme J2EE « historique », Spring met en avant ces concepts. Robustesse Extensibilité Réutilisabilité Spring essaye de proposer l’état de l’art, les « best practices ».
Offres d’emplois en Java Au moins 50% des nouveaux projets java en 2009 utilise Spring.
Que fait Spring?
Tout d’abord : que faites vous? JAVA Hibernate Struts JDBC JPA JSF Tapestry GWT Flex JMS Axis CXF Metro Junit JMX AOP AspectJ TestNG Unitils DBUnit JDO JSP / Servlet XSLT Portlet RMI Mail Quartz Ibatis JCA Itext Restlet Groovy Jruby Grails
Intégration des APIS Maîtrisez vous toutes ces API? Comment se passe l’intégration avec votre application? Connaissez vous les bonnes pratiques de chacune?
La stack Spring Spring  Core IOC AOP Spring  DAO Spring   Context Spring   Remoting … Spring ORM Spring JDBC Spring   Web JMS Web   Services … JDO Hibernate … Spring MVC Struts JSF … Test
Injection de dépendance et AOP
IOC – Inversion Of Control L’IOC est un Design Pattern permettant de casser les dépendances. Il se base sur la notion d’abstraction commune (interface en Java). C’est le framework qui à la charge d’injecter les dépendances. Classe A Classe B Dépendance
IOC – Inversion Of Control (2) Module A Module B Module C Framework Interface I Classe A Dépendance Classe B
DI avec XML (Demo) < bean   id = &quot;shoppingDao&quot;   class = &quot;fr.bt.springdemo.ShoppingDaoImpl&quot;   /> < bean   id = &quot;shoppingService&quot;   class = &quot;fr.bt.springdemo.ShoppingService&quot; > < property   name = &quot;shoppingDao&quot;   ref = &quot;shoppingDao&quot; ></ property > </ bean >
DI avec Javaconfig (Demo) @Configuration public   class  Config { @Bean public  ShoppingDao shoppingDao(){ return   new  ShoppingDaoImpl(); } @Bean public  ShoppingService shoppingService(){ ShoppingService service =  new  ShoppingService(); service.setShoppingDao(shoppingDao()); return  service; } }
AOP L’AOP permet de séparer les différents préoccupations techniques et fonctionnelles. Préoccupations mélangés Préoccupations séparés
Exemple de facilitateur : JDBCTemplate Exemple inspiré de : SPRING Recipes – A Problem-Solution Approach Apress
JDBCTemplate Démo
JDBCTemplate - Résumé Avantages de la solution Séparation  des couches. Découplage grâce à l’IOC. Uniformisation des  Exceptions  qu’elle que soit la technologie de persistance. Diminution  du volume de code grâce aux classes utilitaires. Standardisation et simplification des  transactions .
Conclusion
Conclusion La configuration par XML rend la  configuration très verbeuse et difficile à lire  sur de grosses applications. Éléments de solutions : Utiliser la configuration par annotations de Spring 2.5  Utiliser les outils d’affichage de graphe de dépendance tel Spring IDE ou BeanDoc (JavaDoc évolué avec les graphes de Spring) Spring est très ouvert et ne limite pas les comportements : Pour un même problème il existe parfois une multitude de solutions différentes, ce qui peut être déroutant. Si Spring facilite l’intégration et l’utilisation de librairies tierces, la compréhension et la connaissance de celles-ci reste nécessaire. Le comportement générique n’est pas forcément celui adapté à nos besoins.
Conclusion Spring a largement pénétré le monde industriel et jouit d’une  communauté importante  et dynamique. Sa prise en main est très  facile  et très intuitive basée sur le principe «  Convention over Configuration  » La  documentation est très importante  : le manuel de référence fait 590 pages, il existe plus de 20 livres sur Spring. Spring encadre les développements en instaurant les  best practices  Java et J2EE. Spring est très  modulaire  et surtout très  peu intrusif , on peut se passer de Spring sur un composant et effectuer la configuration à la main ou avec d’autres outils. On ne se lit pas «  ad vitam eternam »  à Spring.
Ressources Site officiel : http://www.springsource.org Articles : http:// zekey.developpez.com /articles/ spring /   http:// www.springhub.com /   http://blog.springsource.com/ Forum : Anglais :  http://forum.springsource.org/ Français :  Forum  developpez.com Livres : Spring par la pratique (édition eyrolles) Spring Recipes (Apress)

Contenu connexe

PPT
Presentation Spring, Spring MVC
Nathaniel Richand
 
PPTX
Workshop Spring - Session 1 - L'offre Spring et les bases
Antoine Rey
 
PPTX
Hibernate jpa
Lhouceine OUHAMZA
 
PPTX
Workshop spring session 2 - La persistance au sein des applications Java
Antoine Rey
 
PPTX
Introduction à spring boot
Antoine Rey
 
PDF
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
PPTX
Spring Boot
Jiayun Zhou
 
PDF
Spring boot introduction
Rasheed Waraich
 
Presentation Spring, Spring MVC
Nathaniel Richand
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Antoine Rey
 
Hibernate jpa
Lhouceine OUHAMZA
 
Workshop spring session 2 - La persistance au sein des applications Java
Antoine Rey
 
Introduction à spring boot
Antoine Rey
 
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
Spring Boot
Jiayun Zhou
 
Spring boot introduction
Rasheed Waraich
 

Tendances (20)

PDF
Spring Framework - AOP
Dzmitry Naskou
 
PPTX
Spring boot Introduction
Jeevesh Pandey
 
PPTX
Maven
Emprovise
 
PPTX
Java 11 to 17 : What's new !?
Jérôme Tamborini
 
PDF
Introduction to Spring Boot!
Jakub Kubrynski
 
PPTX
Spring boot - an introduction
Jonathan Holloway
 
PPTX
Spring ioc
Lhouceine OUHAMZA
 
PDF
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
ENSET, Université Hassan II Casablanca
 
PDF
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Edureka!
 
PPT
Spring mvc
Lhouceine OUHAMZA
 
PPT
Formation jpa-hibernate-spring-data
Lhouceine OUHAMZA
 
PPT
Spring introduction
Manav Prasad
 
PDF
Spring Boot
Jaydeep Kale
 
PDF
Complete Java Course
Lhouceine OUHAMZA
 
PPTX
Java Spring
AathikaJava
 
PPTX
Spring boot
Pradeep Shanmugam
 
PPSX
Spring - Part 1 - IoC, Di and Beans
Hitesh-Java
 
PDF
Support NodeJS avec TypeScript Express MongoDB
ENSET, Université Hassan II Casablanca
 
PDF
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Ippon
 
Spring Framework - AOP
Dzmitry Naskou
 
Spring boot Introduction
Jeevesh Pandey
 
Maven
Emprovise
 
Java 11 to 17 : What's new !?
Jérôme Tamborini
 
Introduction to Spring Boot!
Jakub Kubrynski
 
Spring boot - an introduction
Jonathan Holloway
 
Spring ioc
Lhouceine OUHAMZA
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
ENSET, Université Hassan II Casablanca
 
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Edureka!
 
Spring mvc
Lhouceine OUHAMZA
 
Formation jpa-hibernate-spring-data
Lhouceine OUHAMZA
 
Spring introduction
Manav Prasad
 
Spring Boot
Jaydeep Kale
 
Complete Java Course
Lhouceine OUHAMZA
 
Java Spring
AathikaJava
 
Spring boot
Pradeep Shanmugam
 
Spring - Part 1 - IoC, Di and Beans
Hitesh-Java
 
Support NodeJS avec TypeScript Express MongoDB
ENSET, Université Hassan II Casablanca
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Ippon
 
Publicité

Similaire à Presentation Spring (20)

PDF
Introduction à Spring.pdf
badrfathallah2
 
PDF
cours8-GL-minfo-1718.pdf
SliimAmiri
 
PDF
Spring 3 en production
Julien Dubois
 
PPS
Building Entreprise App With Spring Portfolio
maknihamdi
 
PDF
Formation Spring Avancé gratuite par Ippon 2014
Ippon
 
PPTX
Démystification de Spring une histoire de pattern
letourneur2
 
PDF
Spring
Rim RIZQ
 
PPT
Alt.net spring.net
Mathias Kluba
 
PPT
Alt.net spring.net
Mathias Kluba
 
PDF
Cours spring
mohamed el haddad
 
PDF
YaJUG - Spring 3.0
Gildas Cuisinier
 
PDF
Support JEE Spring Inversion de Controle IOC et Spring MVC
ENSET, Université Hassan II Casablanca
 
PDF
Spring Meetup Paris - Back to the basics of Spring (Boot)
Eric SIBER
 
PDF
Spring 3.0 en production
Spring User Group France
 
PDF
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
PDF
Cours3-JAVA_JEELe cœur de Spring Integration est un framework de messagerie q...
2101011
 
PDF
Jee016 formation-jee-spring-les-bases
CERTyou Formation
 
PDF
Jee017 formation-jee-spring-les-bases-et-perfectionnement
CERTyou Formation
 
Introduction à Spring.pdf
badrfathallah2
 
cours8-GL-minfo-1718.pdf
SliimAmiri
 
Spring 3 en production
Julien Dubois
 
Building Entreprise App With Spring Portfolio
maknihamdi
 
Formation Spring Avancé gratuite par Ippon 2014
Ippon
 
Démystification de Spring une histoire de pattern
letourneur2
 
Spring
Rim RIZQ
 
Alt.net spring.net
Mathias Kluba
 
Alt.net spring.net
Mathias Kluba
 
Cours spring
mohamed el haddad
 
YaJUG - Spring 3.0
Gildas Cuisinier
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
ENSET, Université Hassan II Casablanca
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Eric SIBER
 
Spring 3.0 en production
Spring User Group France
 
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Cours3-JAVA_JEELe cœur de Spring Integration est un framework de messagerie q...
2101011
 
Jee016 formation-jee-spring-les-bases
CERTyou Formation
 
Jee017 formation-jee-spring-les-bases-et-perfectionnement
CERTyou Formation
 
Publicité

Plus de Nathaniel Richand (18)

PDF
Devenir une entreprise resiliente avec la permagilité
Nathaniel Richand
 
PPTX
Proposition séminaire agile
Nathaniel Richand
 
PPTX
Permagilite
Nathaniel Richand
 
PPTX
2017 brownbaglunch Kanban
Nathaniel Richand
 
PPTX
Présentation Dashing
Nathaniel Richand
 
PPTX
Devenir une organisation apprenante dans l'IT en 2014
Nathaniel Richand
 
PPTX
2013 brownbaglunch - lean startup
Nathaniel Richand
 
PPTX
Brownbaglunch Rétrospective
Nathaniel Richand
 
PPT
Brown baglunch xebia
Nathaniel Richand
 
PPT
Lean canvas brochure
Nathaniel Richand
 
PPTX
Continuous integration
Nathaniel Richand
 
PPTX
Josiane ScrumDay 2012
Nathaniel Richand
 
PPTX
2011 XKE - Kanban in action
Nathaniel Richand
 
PPTX
2010 agile conférence - Comment vendre les tests automatisés
Nathaniel Richand
 
PPTX
2011 nri-pratiques tests-avancees
Nathaniel Richand
 
PPTX
XKE - La communication
Nathaniel Richand
 
PPTX
Presentation Zen
Nathaniel Richand
 
PPT
Tests Logiciel
Nathaniel Richand
 
Devenir une entreprise resiliente avec la permagilité
Nathaniel Richand
 
Proposition séminaire agile
Nathaniel Richand
 
Permagilite
Nathaniel Richand
 
2017 brownbaglunch Kanban
Nathaniel Richand
 
Présentation Dashing
Nathaniel Richand
 
Devenir une organisation apprenante dans l'IT en 2014
Nathaniel Richand
 
2013 brownbaglunch - lean startup
Nathaniel Richand
 
Brownbaglunch Rétrospective
Nathaniel Richand
 
Brown baglunch xebia
Nathaniel Richand
 
Lean canvas brochure
Nathaniel Richand
 
Continuous integration
Nathaniel Richand
 
Josiane ScrumDay 2012
Nathaniel Richand
 
2011 XKE - Kanban in action
Nathaniel Richand
 
2010 agile conférence - Comment vendre les tests automatisés
Nathaniel Richand
 
2011 nri-pratiques tests-avancees
Nathaniel Richand
 
XKE - La communication
Nathaniel Richand
 
Presentation Zen
Nathaniel Richand
 
Tests Logiciel
Nathaniel Richand
 

Dernier (7)

PDF
Google Remote Procedure Call Web Service
SOUFIANE MOUHTARAM
 
PDF
Généralités sur balisage (Tagging) en git
SOUFIANE MOUHTARAM
 
PDF
CHAPITRE1_Architecture du Serveur Oracle.pdf
houcemswissi1
 
PDF
linkyfi presentation et ses fonctionnalité
ZakariaRAHOUI2
 
PDF
Présentation UCOPIA et ses fonctionnalités
ZakariaRAHOUI2
 
PDF
CHAPITRE 5_Déplacement des données DBA.pdf
houcemswissi1
 
PDF
Circuit Breaker pattern avec Resilience4j
SOUFIANE MOUHTARAM
 
Google Remote Procedure Call Web Service
SOUFIANE MOUHTARAM
 
Généralités sur balisage (Tagging) en git
SOUFIANE MOUHTARAM
 
CHAPITRE1_Architecture du Serveur Oracle.pdf
houcemswissi1
 
linkyfi presentation et ses fonctionnalité
ZakariaRAHOUI2
 
Présentation UCOPIA et ses fonctionnalités
ZakariaRAHOUI2
 
CHAPITRE 5_Déplacement des données DBA.pdf
houcemswissi1
 
Circuit Breaker pattern avec Resilience4j
SOUFIANE MOUHTARAM
 

Presentation Spring

  • 1. Introduction à Spring Présentation du framework java/J2EE numéro 1 Nathaniel Richand 05/2009
  • 2. Introduction à Spring Place de Spring dans l’écosystème Java Que fait Spring? Injection de dépendance et AOP Exemple de facilitateur Conclusion
  • 3. Place de Spring dans l’écosystème Java
  • 4. Qu’est ce que Spring? Spring est un framework de développement Java basé sur la notion de conteneur léger . Spring existe depuis 2002 , la dernière version est la 2.5 . La version 3.0 est en béta. Spring est un projet Open Source de licence Apache dont le support et les évolutions sont réalisées par la société SpringSource. Spring est composé de très nombreuses briques , mais l’on peut utiliser uniquement les parties qui nous intéresse sans se soucier des autres.
  • 5. Concepts de Spring A partir des critiques portés sur la plateforme J2EE « historique », Spring met en avant ces concepts. Robustesse Extensibilité Réutilisabilité Spring essaye de proposer l’état de l’art, les « best practices ».
  • 6. Offres d’emplois en Java Au moins 50% des nouveaux projets java en 2009 utilise Spring.
  • 8. Tout d’abord : que faites vous? JAVA Hibernate Struts JDBC JPA JSF Tapestry GWT Flex JMS Axis CXF Metro Junit JMX AOP AspectJ TestNG Unitils DBUnit JDO JSP / Servlet XSLT Portlet RMI Mail Quartz Ibatis JCA Itext Restlet Groovy Jruby Grails
  • 9. Intégration des APIS Maîtrisez vous toutes ces API? Comment se passe l’intégration avec votre application? Connaissez vous les bonnes pratiques de chacune?
  • 10. La stack Spring Spring Core IOC AOP Spring DAO Spring Context Spring Remoting … Spring ORM Spring JDBC Spring Web JMS Web Services … JDO Hibernate … Spring MVC Struts JSF … Test
  • 12. IOC – Inversion Of Control L’IOC est un Design Pattern permettant de casser les dépendances. Il se base sur la notion d’abstraction commune (interface en Java). C’est le framework qui à la charge d’injecter les dépendances. Classe A Classe B Dépendance
  • 13. IOC – Inversion Of Control (2) Module A Module B Module C Framework Interface I Classe A Dépendance Classe B
  • 14. DI avec XML (Demo) < bean id = &quot;shoppingDao&quot; class = &quot;fr.bt.springdemo.ShoppingDaoImpl&quot; /> < bean id = &quot;shoppingService&quot; class = &quot;fr.bt.springdemo.ShoppingService&quot; > < property name = &quot;shoppingDao&quot; ref = &quot;shoppingDao&quot; ></ property > </ bean >
  • 15. DI avec Javaconfig (Demo) @Configuration public class Config { @Bean public ShoppingDao shoppingDao(){ return new ShoppingDaoImpl(); } @Bean public ShoppingService shoppingService(){ ShoppingService service = new ShoppingService(); service.setShoppingDao(shoppingDao()); return service; } }
  • 16. AOP L’AOP permet de séparer les différents préoccupations techniques et fonctionnelles. Préoccupations mélangés Préoccupations séparés
  • 17. Exemple de facilitateur : JDBCTemplate Exemple inspiré de : SPRING Recipes – A Problem-Solution Approach Apress
  • 19. JDBCTemplate - Résumé Avantages de la solution Séparation des couches. Découplage grâce à l’IOC. Uniformisation des Exceptions qu’elle que soit la technologie de persistance. Diminution du volume de code grâce aux classes utilitaires. Standardisation et simplification des transactions .
  • 21. Conclusion La configuration par XML rend la configuration très verbeuse et difficile à lire sur de grosses applications. Éléments de solutions : Utiliser la configuration par annotations de Spring 2.5 Utiliser les outils d’affichage de graphe de dépendance tel Spring IDE ou BeanDoc (JavaDoc évolué avec les graphes de Spring) Spring est très ouvert et ne limite pas les comportements : Pour un même problème il existe parfois une multitude de solutions différentes, ce qui peut être déroutant. Si Spring facilite l’intégration et l’utilisation de librairies tierces, la compréhension et la connaissance de celles-ci reste nécessaire. Le comportement générique n’est pas forcément celui adapté à nos besoins.
  • 22. Conclusion Spring a largement pénétré le monde industriel et jouit d’une communauté importante et dynamique. Sa prise en main est très facile et très intuitive basée sur le principe «  Convention over Configuration  » La documentation est très importante : le manuel de référence fait 590 pages, il existe plus de 20 livres sur Spring. Spring encadre les développements en instaurant les best practices Java et J2EE. Spring est très modulaire et surtout très peu intrusif , on peut se passer de Spring sur un composant et effectuer la configuration à la main ou avec d’autres outils. On ne se lit pas «  ad vitam eternam » à Spring.
  • 23. Ressources Site officiel : http://www.springsource.org Articles : http:// zekey.developpez.com /articles/ spring / http:// www.springhub.com / http://blog.springsource.com/ Forum : Anglais : http://forum.springsource.org/ Français : Forum developpez.com Livres : Spring par la pratique (édition eyrolles) Spring Recipes (Apress)