The Spring Framework - Introduction to Lightweight

Download Report

Transcript The Spring Framework - Introduction to Lightweight

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
AutowireCapableBeanFact
ory
HierarchicalBeanFactory
ConfigurableBeanFactory
ConfigurableListableBeanFac
tory
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.
Programmation orienté aspect (AOP)
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
Classes de base de Spring AOP
Notion
Spring AOP
Aspect
Advisor, PointcutAdvisor,
IntroductionAdvisor
Point de jonction
Pointcut
Code Advice
Advice,
MethodBeforeAdvice,
AfterAdvice,
ThrowAdvice
Code Advice around
MethodInterceptor
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 objetrelationnel
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
org.springframework.jdbc.datasource
org.springframework.jdbc.object
org.springframework.jdbc.support
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.