300 likes | 528 Views
The Spring Framework. Trigui Oussema GL5. Objectifs de la présentation Offrir une vision globale du framework Spring Présentation des bases du framework Présentation de l’accès aux données Présentation du support de Spring pour le MVC. Spring un conteneur dit « léger »
E N D
The Spring Framework Trigui Oussema GL5
Objectifs de la présentation • Offrir une vision globale du framework Spring • Présentation des bases du framework • Présentation de l’accès aux données • Présentation du support de Spring pour le MVC
Spring un conteneur dit « léger » • Spring est très complet et modulaire • Spring s’intègre facilement avec d’autres frameworks • Spring facilite la programmation en couche et par composant • SPRING s'appui sur les principes du design pattern IoC et sur la programmation par aspects (AOP)
The core container : • Il offre les fonctionalité essentiel du framework • La principale composante du core container est la BeanFactory qui est une implémentation du Factory pattern • The BeanFactory applique le Inversion of Control (IOC) pattern • Spring context: • c’est le fichier de configurtion qui va produire les information de context au framework
Spring AOP : • Integre les fonctionnalités de laprogrammation orienté aspect au niveau du framework • Spring DAO : • Facilite l'utilisation de JDBC et de différentes solutions de mapping objet-relationnel. • Spring ORM • produit une couche pour l’integration des outils de mapping objet/relationel tel que hibernate ou iBatis
Spring Web module Offre une panoplie de classe permettant le developpement web Spring MVC framework Conçu autour d’une servlet de type dispatcherServlet
Principe du pattern inversion of Control • Le programmeur ne creé pas ses objets mais il décrit comment ils sont créés. • Le programmeur ne connecte pas le composant et le service ensemble mais il décrit cela dans un fichier de configuration.
BeanFactory ListableBeanFactory HierarchicalBeanFactory AutowireCapableBeanFactory ConfigurableBeanFactory ConfigurableListableBeanFactory
BeanFactory: recherche de beans et de ses informations par nom • ListableBeanFactory: recherche de beans par type et liste des noms de beans • AutowireCapableBeanFactory: application d’autowiring et de post processing sur des beans • HierarchicalBeanFactory: possibilité de récupérer la BeanFactory parente;
ConfigurableBeanFactory: possibilité de configurer une BeanFactory (BeanPostProcessor, gestion des singletons, CustomerEditor, BeanFactory parente) • ConfigurableListableBeanFactory: possibilité d’analyser, de modifier et de préinstancier des singletons;
La programmation orientée aspect • Offre de nouvelles perspective à un principe bien connu en génie logiciel : la séparation des préoccupations. • Permet de modulariser, au sein d'entités appelées aspects, ces préoccupations "transverses" • Les outils AOP, fournissent tous un module logiciel qui permet d'ajouter dans un second temps ces préoccupations transverses au programme initial.
Les bénéfices de l'AOP sont nombreux: • Gain de productivité • Réutilisabilité, des objets comme des aspects • Evolutivité • Qualité du code
Aspect: Entité logicielle qui capture une fonctionnalité logicielle transversale à une application • Point de jonction (join point): Point dans l’exécution d’un programme autour duquel un ou plusieurs aspects peuvent être ajoutés • Coupe (crosscut): Désigne un ensemble de points de jonction • Code advice: Bloc de code définissant le comportement d’un aspect (plusieurs types: avant, autour, après, sur exception, introduction).
Tissage : Opération d’intégration entre un ensemble de classes et un ensemble d’aspects; • Plusieurs types de tissage • Tissage à la compilation • Tissage à l’exécution (chargement des classes ou proxy). • Spring utilise le tissage à l’exécution
un conteneur d'objets qui, au delà de l'injection de dépendance, permet aussi de gérer le cycle de vie complet de ces objets • la possibilité d'utiliser la programmation orientée aspect • un mécanisme de DAO qui facilite l'utilisation de JDBC et de différentes solutions de mapping objet-relationnel • un framework web MVC très souple. Laissant le choix de la technologie à utiliser sur la partie vue,
Le framework JDBC offert par spring se base sur quatre paquetages
Apport de Spring MVC: • MVC configuré avec le conteneur IoC • Framework basé sur des interfaces (implémentations pour différents cas d’utilisation) • Résoudre les limitations de Struts • Plusieurs vues possibles pour les contrôleurs (JSTL, Xslt, Excel, Pdf…) et possibilités d’en intégrer d’autres facilement
Intégration des Tiles, Commons Validator • Découplage entre les contrôleurs et les vues • Cycle de vie des requêtes GET et POST (par exemple: validation, remplissage du modèle) • Intercepteurs en natif.