• Accueil
  • > Archives pour juillet 2008

Archive mensuelle de juillet 2008

Intégration de struts avec spring

L’objectif de cet article est d’exposer les différentes méthodes permettant d’intégrer les frameworks struts et spring dans une même application.

Pour ceci nous allons commencer par une présentation des différentes méthodes d’intégration. Ensuite, dans une deuxième partie nous décrirons un exemple détaillé de l’implémentation d’une application qui se base sur ces deux frameworks.

Introduction

La capacité qu’à spring d’intégrer d’autres frameworks lui a conféré une grande popularité. En effet, les applications se basant sur spring bénéficient d’une grande flexibilité permettant le choix des frameworks spécialisés dans chaque couche de l’application (par exemple hibernate pour la gestion de la persistance, struts pour l’implémentation du modele MVC…)

Intégration de struts avec spring

Il existe deux méthodes pour intégrer les deux frameworks struts et spring dans une même application :

  1. La première méthode consiste à utiliser la classe ActionSupport de spring.
  2. La deuxième c’est d’utiliser le plug-in ContextLoaderPlugin.
  • Utiliser la classe ActionSupport

Pour utiliser cette méthode, les actions doivent hériter de la classe ActionSupport de spring et non de la classe Action de struts, ce qui permet l’accés à la methode getWebApplicationContext() , cette deriniére permet de récupérer le context de spring, à partir de context, ApplicationContext, nous pouvons récupérer les beans définis dans le fichier de configuration de spring.

integration spring struts methode 1

Cette méthode est simple à implémenter mais ne permet pas de manipuler les actions struts comme étant des beans. Pour accéder aux beans il faut les récupérer manuellement en passant par le context. En utilisant cette méthode l’injection de dépendance ne peut pas être implémentée pour les actions. Cette méthode crée aussi une dépendance entre les deux frameworks struts et spring.

  • Utiliser le plug-in ContextLoaderPlugin

le plug-in ContextLoaderPlugin permet de charger le context pour la servlet ActionServlet de struts. Deux méthodes sont disponibles pour intégrer ce plug-in.

La première consiste à utiliser la classe DelegationRequestProcessor de spring au lieu de RequestProcessor de struts.

La deuxième consiste à utiliser la classe DelegationActionProxy et déléguer à spring la gestion des actions struts sous forme de beans.

Dans les deux cas il faut commencer par ajouter le plug-in dans le fichier de configuration de struts : struts-config.xml.

config plugin

Pour utiliser la première méthode il faut remplacer le RequestProcessor de struts par DelegatingRequestProcessor en ajoutant dans le fichier struts-config.xml les lignes suivantes :

config methode1_2
Pour permettre à spring de prendre en charge la gestion des actions sous forme de beans, il faut ajouter aussi la déclaration des actions dans le fichier de configuration de spring applicationContext.xml et dans le fichier action-servlet.xml comme le montre l’exemple ci-dessous :

Dans le fichier applicationContext.xml :

config methode1_3

Dans le fichier action-servlet.xml :

config methode 1_5
Pour utiliser la deuxième méthode, il faut suivre les étapes suivantes :
Dans le fichier struts-config.xml modifier le type des actions : nous ne déclarons plus la classe de l’action mais nous faisons référence à la classe DelegatingActionProxy.

config methode2_1

Ceci permet à spring de prendre en charge la gestion des actions sous forme de beans. Dans le fichier action-servlet.xml il faut déclarer l’action sous forme de bean.

config methode 1_5

L’option singleton= »false » permet d’instancier un bean pour chaque requête. Nous discuterons la configuration des beans dans un autre article.
Le plug-in ContextLoaderPlugin permet d’intégrer le framwork struts avec spring sans modifier le code des actions et sans créer de dépendance entre les deux frameworks, tout en assurant la gestion des actions sous forme de beans et de bénéficier des avantages de l’injection de dépendance apporté par spring. Néanmoins, l’utilisation de cette méthode nécessite une double déclaration des actions : dans le fichier struts-config.xml et le fichier action-servlet.xml ce qui peut être un inconvénient pour certain développeur.

Application

Dans cette partie, nous allons implémenter notre première application qui intègre les frameworks struts et spring en utilisant le plugin ContextLoaderPlugin.

L’application est très simple. Elle contient deux pages une première page d’authentification pour saisir le login et le mot de passe et une deuxième qui s’affichée en cas de «success » de l’authentification.
Le schéma ci-dessous présente la structure de l’application.

spring struts app 1

Dans ce qui suit nous allons décrire « step by step » la création de l’application :

1. Sous eclipse créer un nouveau projet web dynamique.

2. Ajouter les librairies nécessaires pour struts ajouter les lib common-xxx.jar et struts.jar (struts 1.2) et pour intégrer spring ajouter spring.jar.

3. Modifier le fichier web.xml :

integration spring struts app 2
4. Créer le fichier action-servlet.xml :

ss app 3
5. Créer le fichier applicationContext.xml :

ss app4
6. Créer le fichier struts-config.xml :

ss 10 app
7. Créer les actions :
LoginAction : permet de récupérer le login et le mot de passe ensuite utilise un UserManager pour vérifier leur validité. La dépendance entre l’action LoginAction et la classe UserManager est gérée par spring en utilisant l’injection de dépendance.

ss11 app
LogOutAction : permet de retourner à la page de login.

8. Créer la classe User : un java bean qui contient les attributs login et password.

9. Créer la classe UserManagerImpl :

La classe UserManagerImpl implémente l’interface UserManager. Cette classe possède la méthode getUser (String login, String password) qui permet de vérifier la validité du login et le mot de passe. Pour simplifier l’application, la vérification du login et le mot de passe se fait en comparant respectivement le login et le mot de passe aux chaînes de caractères « login » et « pass ».Cependant,  l’utilisation du service UserManager permettra par la suite de modifier la vérification en ajoutant par exemple un accès à la base de données et ceci sans modifier le code des actions.

ss12 app
Conclusion

Dans cet article nous avons exposé comment intégrer les deux frameworks struts et spring dans une même application : comment récupérer les beans dans une action struts, comment configurer les actions struts comme étant des beans gérés par spring et bénéficier de l’injection de dépendance.

Download application :
Vous pouvez télécharger l’application en cliquant sur ce lien application.zip

Références :

http://static.springframework.org/spring/docs/1.1.5/reference/webintegration.html

Les certifications Java

Dans cet article je vais présenter, brièvement, la notion de certification en Java Entreprise Edition. Quelles sont les certifications et leurs intérêts ?

Les différentes certifications Java proposées par Sun

En java, il y a une série de certifications proposées par Sun qui sont répartis sur 4 niveaux.  Dans chaque niveau, il y a une ou plusieurs certifications possibles et pour pouvoir accéder à des certifications du niveau supérieur, il est nécessaire d’en réussir au moins une du niveau inférieur. A titre d’exemple, si vous désirez passer la certification SCWCD, vous devez passer obligatoirement la certification SCJP.

Le schéma ci dessous montre les différents niveaux de certifications

niveaux de certification

Java Micro Edition (Java ME) : qui cible les terminaux portables.

Java Standard Edition (Java SE) : qui vise les postes clients.

Java Enterprise Edition (Java EE) : qui définit le cadre d’un serveur d’applications et d’intégration.

Au premier niveau « Entry Level », nous trouvons:

  • SCJA : (Sun Certified Java Programmer), il permet de tester les notions de base de la POO et les connaissances générales de java.

Au deuxième niveau « Foundation », nous trouvons:

  • SCJP : (Sun Certified Java Programmer), c’est la certification principale en Java. Elle est la plus connue et la plus passée.

Au troisième niveau « Speciality », il y a 5 certifications:

  • SCJD: Sun Certified Java Developer
  • SCWCD: Sun Certified Web Component Developer
  • SCBCD: Sun Certified Business Component Developer
  • SCDJWS: Sun Certified Developer for Java Web Services
  • SCMAD: Sun Certified Mobile Application Developer

Il est important de savoir que le passage aux certifications de type « Speciality », nécessite l’obtention de la certification SCJP. Cette dernière est le passage obligatoire pour les certifications de type « Speciality ».

Au dernier niveau, une seule certification:

  • SCEA: Sun Certified Enterprise Architect

Les intérêts des certifications

Le but des certifications est d’acquérir une bonne connaissance des bases en Java et JEE pour une meilleure maîtrise de leurs développements

Mais le plus important dans une certification JAVA est de l’avoir préparé car c’est une occasion pour découvrir des détails auxquels on n’a jamais pensé.

La certification reste dans tous les cas utile pour toute personne désirant approfondir ses connaissances en Java.

Références :
http://www.sun.com/training/certification/java/index.xml
http://brabant.developpez.com/guide/certification/java/

 




OCS :: Oracle Collaborative... |
UN PEU SUR JACKS, C'EST COM... |
Mes ordinateurs |
Unblog.fr | Créer un blog | Annuaire | Signaler un abus | MM SITE
| Dahevos L!f3
| bkaurelien