II. L'architecture du Framework Spring
1. Présentation
Le framework Spring comprend de nombreux modules tels que core, beans, contexte, langage d'expression, AOP, Aspects, Instrumentation, JDBC, ORM, OXM, JMS, Transaction, Web, Servlet, Struts, etc..., comme indiqué dans le diagramme suivant.
1.2. Core container
Le Core Container est composé des modules Core proprement dit, de Beans, de Context et de EL (Expression Language) :
- Le module Core fournit les fonctionnalités fondamentales du framework en plus de l'IoC et l'injection de Dependance.
- Le module Beans quand à lui fournit l'interface BeanFactory qui permet une implémentation du pattern Factory .
- Le module Context s'appuie sur la base solide fournie par les modules Core et Beans et constitue un moyen permettant d'accéder aux objets définis et configurés au sein d'une application développée avec Spring. L'interface ApplicationContext est le point focal du module Context.
- Le module SpEL (Spring Expression Langage) fournit un langage d'expression (dérivant de EL) puissant qui permet manipuler des d'objets à l'exécution d'une application Spring.
1.3. Data Access/Integration
La couche Access/Integration est composée de JMS et du module de Transaction :
- Le module JDBC fournit une couche d'abstraction JDBC qui supprime le besoin d'un codage fastidieux lié à JDBC.
- Le module ORM fournit des couches d'intégration pour les API de mappage objet-relationnelles les plus répandues, notamment JPA, JDO, Hibernate et iBatis.
- Le module OXM fournit une couche d'abstraction prenant en charge les implémentations de mappage Object / XML pour JAXB, Castor, XMLBeans, JiBX et XStream.
- Le module Java Messaging Service JMS contient des fonctionnalités permettant de générer et de consommer des messages.
- Le module Transaction prend en charge la gestion des transactions programmatiques et déclaratives pour les classes qui implémentent des interfaces spéciales et pour tous les POJO.
1.4. Web
La couche Web comprend les modules Web, Web-MVC, Web-Socket et Web-Portlet dont les détails sont les suivants:
- Le module Web fournit des fonctionnalités d'intégration Web de base, telles que la fonctionnalité de téléchargement de fichiers en plusieurs parties et l'initialisation du conteneur IoC à l'aide des servlets Listner et Context orienté application Web.
- Le module Web-MVC contient l'implémentation Model-View-Controller (MVC) de Spring pour les applications Web.
- Le module Web-Socket prend en charge la communication bidirectionnelle basée sur WebSocket entre le client et le serveur dans les applications Web.
- Le module Web-Portlet fournit l'implémentation MVC à utiliser dans un environnement de portlet et reflète la fonctionnalité du module Web-Servlet.
...