Template 5.2 © Valtech SPRING Fr Le framework Spring
2 v Motivation Simplification du développement des applications J2EE Approche déclarative centralisée Un fichier XML de configuration Découplage entre les composants des différentes couches: Dependency Injection pattern (Inversion Of Control) : disparition des patterns Factory, Delegate, Locator AOP : intercepteurs permettant d’ajouter/retirer des services techniques comme le Log, l’audit, etc. Abstraction et support des frameworks et normes J2EE: Couche d’intégration : support de JDO, Hibernate, JDBC Couche métier : support des POJOs, EJBs Couche présentation : support de Struts (Tiles), de WebWork, Spring MVC Services transactionnels, sécurités
3 v Fondations Principe Un conteneur se charge de Lire la configuration de l’application à exécuter Créer l’ensemble des composants de l’application Initialiser les liens d’utilisations entre composants Démarrer l’application Remarques Les composants de l’application ne dépendent pas du conteneur Pas de singletons à créer pour créer des composants Formalisation Inversion of Control (ou Dependency Injection) Type 1 interface injection (Avalon) Type 2 setter injection (Spring ) Type 3 constructor injection (PicoContainer)
4 v Exemple avec Spring Fichier de configuration de l’application en XML Composant de l’application. Les méthodes setBeanOne, setBeanTwo et setIntegerProperty sont car utilisées dans le fichier de configuration.
5 v Références Papiers: « Dependency Inversion Principle » de Robert C. Martin «Inversion of Control Containers and the Dependency Injection pattern » de Martin Fowler Frameworks Avalon PicoContainer Spring