lundi 28 mars 2011

Java / J2EE avec Spring (rappel)

Comme tu avais l’air intéressé par Spring , je te fais rapidement une synthèse des possibilités de Spring :

Spring est un container léger. Ceci signifie que tu n’as besoin que d’un Tomcat et des jars « Spring », et qu’il t’apporte des fonctionnalités d’un serveur d’application J2EE (jonas, jboss, etc … ), sans en utiliser un (ex : les transactions, JMS, gestion des objets, sécurité) .

Après si tu as besoin de toutes les fonctionnalités d’un serveur J2EE, il vaut peut-être mieux en utiliser un directement. De plus, J2EE 6 a largement simplifier son modèle de développement suite au critique de la communauté Spring (ejb 3.0, JSF 2.0,etc … ).

Ce dernier est composé de nombreux modules que tu peux intégrer ou non selon tes besoins.

• La grande force de Spring est qu’il est basé sur le POJOs, et de ce fait, il ne contraint pas ton implémentation ( on ne doit pas hériter d’une classe particulière ou implémenter une interface) et peut-être mis en place après coup. La mise en place est simple sur une nouvelle application, et le ticket d’entrée faible.

• Il favorise l’intégration de technologie existante, et ne réinvente pas la roue. C'est-à-dire que qu’il n’essaye pas de concurrencer des Framework reconnus (comme hibernate, activeMQ, etc … ), mais propose des « ponts » pour les intègrer (ex : pour la persistance, il y a un pont vers hibernate, TopLink , JMS, etc …).

• Il fournit un plugin Eclipse qui facilite l’écriture des fichiers XML (Spring IDE).

• Spring adresse l’ensemble des problématiques du développement WEB.
En détails :
1. Gestion du cycle de vie des objets et injection de dépendances (via Spring Core)
a. Ceci permet de substituer facilement une implémentation par une autre (ex : pour les tests, ou pour faire évoluer ton application).
2. Les couches WEB sur une modèle MVC et la création de endpoint REST / JSON (via Spring MVC)
a. Création simple de contrôleur MVC et de vue JSP, two-way binding, validation , et production simple de endpoint REST délivrant du XML/JSON, ou basé sur REST.
3. la sécurité de l’application par JDBC,SSO, LDAP (via Spring Security)
a. Sécuriser simplement une application par un filtre HTTP
4. la couche d’accès à la persistance et gestion des transactions (Spring ORM)
a. Permet de gérer les transactions simplement par annotation, foun
5. exposition des services (via JMX, RMI, JMS, etc …)
a. permet simplement de transformer une « classe normale » en classe appelable via RMI, JMX, Web-Service, etc …)
6. les tests unitaires (via Spring-test)
7. la programmation par aspect (Spring-AOP)
8. plein d’autres modules (Spring batch, etc …)

Aucun commentaire:

Enregistrer un commentaire