Contenu connexe
Similaire à Introduction à Spring.pdf
Similaire à Introduction à Spring.pdf (20)
Plus de badrfathallah2 (19)
Introduction à Spring.pdf
- 2. © British Telecommunications plc
Introduction à Spring
• Place de Spring dans l’écosystème Java
• Que fait Spring?
• Injection de dépendance et AOP
• Exemple de facilitateur
• Conclusion
- 4. © British Telecommunications plc
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. © British Telecommunications plc
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 ».
- 8. © British Telecommunications plc
Tout d’abord : que faites vous?
JAVA
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. © British Telecommunications plc
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. © British Telecommunications plc
La stack Spring
Spring
Spring Core
Core
IOC AOP
Spring
Spring DAO
DAO Spring
Spring Context
Context
Spring
Spring
Remoting
Remoting
…
Spring
Spring
ORM
ORM
Spring
Spring
JDBC
JDBC Spring
Spring Web
Web
JMS
Web
Services
…
JDO
Hibernate
…
Spring
Spring
MVC
MVC
Struts
JSF
…
Test
- 12. © British Telecommunications plc
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. © British Telecommunications plc
IOC – Inversion Of Control (2)
Interface I
Classe A
Dépendance
Classe B
Module A Module B Module C
Framework
- 14. © British Telecommunications plc
DI avec XML (Demo)
<bean id="shoppingDao"
class="fr.bt.springdemo.ShoppingDaoImpl" /
>
<bean id="shoppingService"
class="fr.bt.springdemo.ShoppingService">
<property name="shoppingDao"
ref="shoppingDao"></property>
</bean>
- 15. © British Telecommunications plc
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. © British Telecommunications plc
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. © British Telecommunications plc
Exemple de facilitateur :
JDBCTemplate
Exemple inspiré de :
SPRING Recipes – A Problem-Solution
Approach
Apress
- 19. © British Telecommunications plc
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. © British Telecommunications plc
Conclusion
g 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. © British Telecommunications plc
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. © British Telecommunications plc
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)