Annexe 2
Spring
Spring est un Framework open Source JEE pour les applications
n-tiers facilitant leur développement ainsi que leurs phases de tests.
Il faut savoir que Spring est considéré comme un conteneur
léger. En voici, une définition :
Spring s'appuie principalement sur l'intégration de trois
concepts clés :
|
Inversion de contrôle ou injection de dépendances
Programmation orientée aspect
Couche d'abstraction
|
La programmation orientée aspects sépare les
considérations techniques des descriptions métiers dans une
application. Elle va donc permettre d'extraire les dépendances entre
modules et de gérer depuis l'extérieur ces modules en les
spécifiant dans des composants du système à
développer, nommés "aspects".
Quant à la couche d'abstraction, elle permet
d'intégrer d'autres frameworks et bibliothèques avec une plus
grande facilité. En effet, grâce à cette dernière,
Spring ne concurrence pas d'autres frameworks dans une couche spécifique
d'un modèle architectural MVC, mais s'avère être un
framework multi-couches pouvant s'insérer au niveau de toutes les
couches : modèle, vue, et contrôleur. Cette couche d'abstraction
permet donc à Spring d'intégrer Hibernate pour la couche de
Persistance, ou encore Struts pour la couche Présentation.
Il faut savoir que Spring propose une multitude de
façon d'utiliser son conteneur léger. Une des plus
utilisée est celle faisant appel aux notions de fabrique de Beans et de
contexte d'application, permettant de dialoguer et de configurer son conteneur
léger.
La fabrique de Beans(BeanFactory) est l'interface de base
permettant aux applications reposant sur le conteneur léger de Spring
d'accéder à ce dernier. Elle définit les
fonctionnalités minimales dont dispose l'application pour interagir avec
celui-ci. Les méthodes proposées par cette interface permettent
donc d'interroger le conteneur concernant les objets dont il à la
charge.
Pourquoi utiliser Spring ?
Spring est composé de plusieurs modules disponibles sous
forme de fichiers jar. Ainsi, on peut n'ajouter au projet que la partie que
l'on souhaite utiliser. De plus,
|
« MISE EN OEUVRE D'UNE SOLUTION DE GESTION
CENTRALISEE DE LA FICHE SIGNALETIQUE CLIENT POUR LE COMPTE DE CREDIT
AGRICOLE DU MAROC (CAM)»
|
MEMOIRE DE FIN D'ETUDE
|
Spring fournit des services de type fonctionnel comme par exemple
la gestion de transactions.
Voici quelques uns des avantages de Spring :
Découplage des composants logiciels. Moins de
dépendances entre les différents modules.
Diminue la quantité de code par l'intégration des
Frameworks tiers. Permet de mettre en oeuvre la programmation orientée
aspect.
Un système transactionnel au niveau de la couche
métier.
Rend simple les tests des applications multicouches (n-tiers).
Pas de dépendances entre le code et Spring grâce
à la notion d'injection de dépendances. Ce qui permet de
remplacer une couche sans impacter sur les autres.
Déploie et consomme des services Web.
Echange des objets par le protocole HTTP.
Facilite la maintenabilité de l'application.
Facilite la modularité et l'extensibilité de
l'application Ainsi, la séparation des interfaces de leur
implémentation permet d'utiliser par exemple, un framework
différent pour la couche Présentation ou Persistance sans
impacter sur les autres couches.
L'architecture de Spring :
La figure suivante représente l'organisation des modules
et des fonctionnalités utilisés dans Spring :
Figure 27 Architecture du Framework Spring
|
« MISE EN OEUVRE D'UNE SOLUTION DE GESTION
CENTRALISEE DE LA FICHE SIGNALETIQUE CLIENT POUR LE COMPTE DE CREDIT
AGRICOLE DU MAROC (CAM)»
|
MEMOIRE DE FIN D'ETUDE
|
Comme la montre la figure ci-dessus, Spring repose sur un socle
technique constitué de deux modules principaux :
Spring Core : le conteneur léger. Ce module
implémente le concept d'injection de dépendances (ou inversion de
contrôle). Il est également responsable de la gestion de la
configuration du conteneur.
Spring AOP : ce module permet d'intégrer la programmation
orientée aspect(POA).
Sur ce socle viennent se greffer d'autres modules de plus haut
niveau destinés à intégrer des Frameworks tiers, ou
à fournir des fonctions de support. Ces modules sont les suivants :
Modules d'intégration de la persistance de données
:
Spring DAO : permet de rendre abstrait la notion d'objets
d'accès aux données.
Spring ORM : permet d'intégrer un framework de
persistance. Spring JDBC : permet de simplifier l'utilisation de JDBC.
Spring Context : Module de gestion de contexte applicatif
Permet d'assurer le dialogue entre Spring et l'application,
indépendamment de la plateforme technique sur laquelle fonctionne cette
dernière.
Spring Web : Module d'intégration de Framework Web (Struts
par exemple).
Spring Remoting : Module de distribution d'objets.
Permet de transformer de simples classes Java en objets
distribués RMI, Web Services ou autres.
Modules de support de la différente technologie JEE (JMX,
JMS, JCA et EJB).
|