Spring

Ouraho Youssef El Guezbari Aziz Halim Hamza

Définition : Spring


 

Spring est un Framework libre crée par Rod Johnson en 2003. Spring est aujourd’hui l’un des Framework Java les plus en vue. Basé sur des concepts simples, il permet néanmoins de modifier considérablement les processus de développement traditionnels des projets Il prend donc en charge la création d’objets et la mise en relation d’objets par l’intermédiaire d’un fichier de configuration qui décrit les objets à fabriquer et les relations de dépendances entre ces objets

Définition : Spring

 “An

open-source layered Java/J2EE application framework having a light-weight container implementing Inversion-of-Control and Aspect Oriented Programming.”

Layered application framework

Spring Support L’Architecture en couches, à travers ses différentes composantes

MVC Component (Presentation): La flexibilité du framework Spring c’est qu’il permet d’utiliser n'importe quel framework MVC avec . Toutefois, il fournit également son propre cadre, appelé Spring MVC qui implémente le MVC modèle . Elle le fait en fournissant Le contrôleur de Servlet et Le JSP taglib . IOC container (Business)’(service): La couche business logic (Métier) peut être développé sans couplage avec d'autres couches à l'aide du IOC fournis par Spring qui permet au développeur de mettre en œuvre la logique métier comme Plain Old Java Objects (POJO) et assembler afin qu'ils puissent être injectés ou appelés l’hors de l'exécution DAO support (Persistence) : toutes les technologies, y compris JDBC, Hibernate, et iBatis, peut être utilisée avec Spring pour accéder à des données persistantes (ex. données dans un BD). Spring fournit cette fonctionnalité à travers sa composante DAO. Un développeur peut connecter pratiquement n'importe Persistence Framework en utilisant le composant DAO.

Inversion de contrôle IOC

 C’est

un concept, - un ensemble de techniques de programmation, dans lequel le flot d'exécution d'un logiciel n'est plus sous le contrôle direct de l'application elle-même mais du Framework d'Hollywood : "Ne nous appelez pas, c'est nous qui vous appellerons"

 Principe

Avantages de IOC

 Facilite

les tests unitaires de son code car elle permet d'injecter une fausse implémentation  Pouvoir changer des points d'implémentation sans avoir à modifier le programme

Injection de dépendances

Le Problème fondamental qui se pose l’hors du développement d’une application qui été programmer par plusieurs équipes est : Comment assembler les différents parties / éléments qui constituent cette Application
C’est un mécanisme qui permet d'implanter le principe de l'inversion de contrôle. Il consiste à créer dynamiquement (injecter) les dépendances entre les différentes classes en s'appuyant sur une description (fichier de configuration ou métadonnées) ou de manière programmatique

types d'injection

injection par constructeurs : Ce type d'injection se fait sur le constructeur, c'est-à-dire que le constructeur dispose de paramètres pour directement initialiser tous les membres de la classe.

injection par mutateurs (setters) : Ce type d'injection se fait après une initialisation à l'aide d'un constructeur sans paramètre puis les différents champs sont initialisés grâce à des mutateurs.

Programmation Procédurale

Programmation orientée Objets

Programmation orientée Objets

Programmation orientée Objets

 Trop

de relation avec les CrossCutting Object  Nous avons encore besoin de faire appel à la nouvelle méthode dans chaque objet  Impossible de tous changer à la fois

Programmation orientée Aspects

organisation des modules et fonctionnalités

 

  

Spring Core : implémente notamment le concept d'inversion de contrôle (injection de dépendance). Il est également responsable de la gestion et de la configuration du conteneur. Spring Context : Ce module étend Spring Core. Il fournit une sorte de base de données d'objets, permet de charger des ressources (telles que des fichiers de configuration) ou encore la propagation d'évènements et la création de contexte comme par exemple le support de Spring dans un conteneur de Servlet. Spring AOP : Permet d'intégrer de la programmation orientée aspect. Spring DAO : Ce module permet d'abstraire les accès à la base de données, d'éliminer le code redondant et également d'abstraire les messages d'erreur spécifiques à chaque vendeur. Il fournit en outre une gestion des transactions. Spring ORM : Cette partie permet d'intégrer des frameworks de mapping Object/Relationnel tel que Hibernate, JDO ou iBatis avec Spring. La quantité de code économisé par ce package peut être très impressionnante (ouverture, fermeture de session, gestion des erreurs) Spring Web : Ensemble d'utilitaires pour les applications web. Par exemple une servlet qui démarre le contexte (le conteneur) au démarrage d'une application web. Permet également d'utiliser des requêtes http de type multipart. C'est aussi ici que se fait l'intégration avec le framework Struts. Spring Web MVC : Implémentation du modèle MVC. Personnellement j'utilise plutôt Struts mais c'est surtout une question d'habitude, c'est là la grande force de Spring, rien ne vous oblige à tout utiliser et vous pouvez tout mélanger. Ce qui n'est pas forcément une bonne idée mais nous en reparlerons.

Avant projet

Architecture de projet realisé