La plupart des développeurs connaissent Spring mais pas nécessairement tous les projets qui lui sont attachés et que l’on regroupe sous le nom de Spring Portfolio ! Je vais ici vous faire faire le tour des différents modules/sous-projets de Spring.
Tout d’abord, il y a le Spring framework qui est le coeur de Spring. Il propose un container dit léger, c’est-à-dire qu’il n’a pas besoin de serveur d’application pour fonctionner. Ses principales caractéristiques sont l’IoC (inversion of control), l’AOP (aspect-oriented programmation), sa couche d’abstraction permettant une intégration aisée d’autres librairies, et sa partie MVC.
Ensuite, il y a Spring Web Flow qui permet de manager les actions des utilisateurs via des flux permettant de faciliter le développement et la phase de test. Un flux représente un dialogue entre l’application et un utilisateur et gére l’éxécution jusqu’à ce que le but soit atteint. Cette partie permet grandement de simplifier l’élaboration de dialogues qui peuvent devenir vite complexe.
Spring Security n’est pas le module le plus lourd et est destiné à l’aspect sécurité comme vous l’aurez deviné. Son approche est d’intégrer la librairie Acegi Security.
Spring Batch est un framework permettant l’éxécution de batchs. Il semble faire directement de l’ombre à la librairie Quartz qui s’intégre très bien avec Spring. La force majeure de Spring Batch est qu’il permet le traitement de grand volumes avec un niveau de performance plus qu’acceptable tout en offrant un contexte transactionnel.
Avec Spring LDAP, c’est fini le temps de se prendre la tête pour implémenter une connexion vers un annuraire géré par LDAP. Petit plus à mes yeux, Spring LDAP se connecte depuis quelques versions avec Apache DS (Directory Service).
Spring Web Services donne une implémentation de SOAP permettant ainsi le développement de web services. L’une des librairies les plus utilisées au niveau des web services est Axis d’Apache. Mais il semble que le projet n’a plus été mis à jour depuis environ deux ans, on peut comprendre p-e l’intention de Spring de venir créer un module sur lequel ils ont la main.
Spring Integration est l’un des derniers petits nouveaux de Spring. Par défaut, Spring supporte déjà les technologies suivantes: JMS, remoting, JMX, scheduling, et email. Le but de Spring Integration est de venir ajouter un couche de plus haut niveau pour venir utiliser les technologies précitées.
Avec Spring Modules, l’intégration avec d’autres librairies est permisse. On peut citer parmi les plus connues: Ant, Lucene, Apache OJB, Tapestry, EHCache, Drools, jBPM, Groovy, Velocity, etc…
Spring Java Config est un projet qui apporte un très grand plus! La plupart d’entre vous savent que la configuration de Spring passe par l’utilisation de fichiers xml qui peuvent vite venir encombrant. Ici Spring Java Config permet l’utilisation des annotations dans les classes. Oh oui le pied !
Spring Rich Client permet le développement d’applications de type Swing facilement au travers de fichiers de configuration décrivant les composants des différentes interfaces de l’application.
Avec Spring .NET, on passe l’autre côté… chez l’ennemi… non je rigole. C’est un framework qui permet de faciliter le développement d’applications .NET avec l’utilisation de Spring.
Et enfin Spring BeanDoc, est un outil qui permet d’apporter de la documentation supplémentaire sur l’application Spring que vous développez. Vous pouvez ainsi visualiser plus facilement les différentes couches que vous avez mises en plus place. A absolument utiliser pour les fans de documentation… et pour les autres aussi.
Voilà, nous avons fait rapidement le tour du Spring Portfolio, ce qui serait intéressant de savoir, c’est si vous avez utilisez un de ces projets et quelle est le résultat que vous en avez tiré?





Pour information, Spring WS est sortie en version 1.5 il y a très peu de temps.
La nouvelle version apporte un certains nombres de nouveautés.
Sinon, parmi les projets tu oublies :
- Spring Dynamic Module, un module pour le développement OSgi
- Spring IDE, le plugin Eclipse d’aide au développement Spring
Sinon personnellement j’ai eu l’occasion de jouer avec :
Spring Framework bien évidemment, Spring LDAP, Acegi Security ( pas encore Spring Security, qui arrive en version 2 sous peu ), ainsi que Spring WS.
Jusuqu’ici je n’ai pas encore été décu par ceux-ci
“Spring Web Services donne une implémentation de SOAP permettant ainsi le développement de web services. L’une des librairies les plus utilisées au niveau des web services est Axis d’Apache. Mais il semble que le projet n’a plus été mis à jour depuis environ deux ans, on peut comprendre p-e l’intention de Spring de venir créer un module sur lequel ils ont la main.”
Ce n’est pas tout à fait exact. Le projet Axis d’Apache est toujours d’actualité mais il faut plutôt regarder du côté d’axis2 (http://ws.apache.org/axis2/) plutôt que d’axis 1.x (http://ws.apache.org/axis/). Le fait que Spring souhaite offrir une pile de Web Service ne semble pas étonnant du fait que tout le monde fait ou parle de Web Services. Ce n’est pas le premier ni le dernier concurrent d’Axis.