You are on page 1of 15

Spring

Ouraho Youssef El Guezbari Aziz Halim Hamza

Dfinition : Spring

Spring est un Framework libre cre par Rod Johnson en 2003. Spring est aujourdhui lun des Framework Java les plus en vue. Bas sur des concepts simples, il permet nanmoins de modifier considrablement les processus de dveloppement traditionnels des projets Il prend donc en charge la cration dobjets et la mise en relation dobjets par lintermdiaire dun fichier de configuration qui dcrit les objets fabriquer et les relations de dpendances entre ces objets

Dfinition : 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 LArchitecture en couches, travers ses diffrentes composantes

MVC Component (Presentation): La flexibilit du framework Spring cest quil permet dutiliser n'importe quel framework MVC avec . Toutefois, il fournit galement son propre cadre, appel Spring MVC qui implmente le MVC modle . Elle le fait en fournissant Le contrleur de Servlet et Le JSP taglib . IOC container (Business)(service): La couche business logic (Mtier) peut tre dvelopp sans couplage avec d'autres couches l'aide du IOC fournis par Spring qui permet au dveloppeur de mettre en uvre la logique mtier comme Plain Old Java Objects (POJO) et assembler afin qu'ils puissent tre injects ou appels lhors de l'excution DAO support (Persistence) : toutes les technologies, y compris JDBC, Hibernate, et iBatis, peut tre utilise avec Spring pour accder des donnes persistantes (ex. donnes dans un BD). Spring fournit cette fonctionnalit travers sa composante DAO. Un dveloppeur peut connecter pratiquement n'importe Persistence Framework en utilisant le composant DAO.

Inversion de contrle IOC

Cest

un concept, - un ensemble de techniques de programmation, dans lequel le flot d'excution d'un logiciel n'est plus sous le contrle direct de l'application elle-mme 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 implmentation Pouvoir changer des points d'implmentation sans avoir modifier le programme

Injection de dpendances

Le Problme fondamental qui se pose lhors du dveloppement dune application qui t programmer par plusieurs quipes est : Comment assembler les diffrents parties / lments qui constituent cette Application
Cest un mcanisme qui permet d'implanter le principe de l'inversion de contrle. Il consiste crer dynamiquement (injecter) les dpendances entre les diffrentes classes en s'appuyant sur une description (fichier de configuration ou mtadonnes) ou de manire programmatique

types d'injection

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

injection par mutateurs (setters) : Ce type d'injection se fait aprs une initialisation l'aide d'un constructeur sans paramtre puis les diffrents champs sont initialiss grce des mutateurs.

Programmation Procdurale

Programmation oriente Objets

Programmation oriente Objets

Programmation oriente Objets

Trop

de relation avec les CrossCutting Object Nous avons encore besoin de faire appel la nouvelle mthode dans chaque objet Impossible de tous changer la fois

Programmation oriente Aspects

organisation des modules et fonctionnalits

Spring Core : implmente notamment le concept d'inversion de contrle (injection de dpendance). 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 donnes d'objets, permet de charger des ressources (telles que des fichiers de configuration) ou encore la propagation d'vnements et la cration de contexte comme par exemple le support de Spring dans un conteneur de Servlet. Spring AOP : Permet d'intgrer de la programmation oriente aspect. Spring DAO : Ce module permet d'abstraire les accs la base de donnes, d'liminer le code redondant et galement d'abstraire les messages d'erreur spcifiques chaque vendeur. Il fournit en outre une gestion des transactions. Spring ORM : Cette partie permet d'intgrer des frameworks de mapping Object/Relationnel tel que Hibernate, JDO ou iBatis avec Spring. La quantit de code conomis par ce package peut tre trs impressionnante (ouverture, fermeture de session, gestion des erreurs) Spring Web : Ensemble d'utilitaires pour les applications web. Par exemple une servlet qui dmarre le contexte (le conteneur) au dmarrage d'une application web. Permet galement d'utiliser des requtes http de type multipart. C'est aussi ici que se fait l'intgration avec le framework Struts. Spring Web MVC : Implmentation du modle MVC. Personnellement j'utilise plutt 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 mlanger. Ce qui n'est pas forcment une bonne ide mais nous en reparlerons.

Avant projet

Architecture de projet realis

You might also like