| |||
auteur : Gildas Cuisinier | |||
Dans une application Web, il n'est pas utile de créer l'ApplicationContext à la main via une des implémentations de cette interface. En effet, Spring fourni un Listener afin de gérer cela :
Par défaut, ce Listener va charger un fichier /WEB-INF/applicationContext.xml, et stocker l'ApplicationContext dans le ServletContext. Il est possible de spécifier un ou plusieurs fichiers à charger à la place du fichier par defaut. Pour cela, il faut utiliser un paramètre de contexte :
Ensuite, dans les servlets ( ou toute autre classe possèdant une référence au ServletContext ), il est possible de récupérer l'applicationContext via :
| |||
lien : Documentation officielle sur l'intégration de Spring dans les applications Web |
| |||
auteurs : Gildas Cuisinier, djo.mos | |||
Une fois qu'un context Spring a été crée dans l'application Web, il est possible d'injecter un Bean Spring dans une Bean JSF.
Pour ce faire, il faut tout d'abord ajouter un variable-resolver dans le faces-config.xml :
Une fois cela fait, il est possible de lier un Bean Spring comme une propriété du Bean JSF :
Dans cet exemple, #{userService} fait référence à un Bean défini dans Spring, avec le nom userService.
Méthode Spring 2.5
Spring 2.5 offre enfin une nouvelle méthode d'intégration avec JSF compatible avec la version 1.2 (qui ne repose pas sur le VariableResolver, déprécié depuis JSF 1.2). Pour cela, il faut ajouter dans faces-config ce fragment xml :
Le reste fonctionne exactement de la même façon qu'avec le DelegatingVariableResolver.
|
| ||
auteur : Michael Courcy | ||
Lors de l'utilisation d'Hibernate dans une application Web, il est courant d'avoir des problèmes lors de l'utilisation des objets Hibernate dans une vue ( JSP, Velocity ou autre ).
La cause de cela, est la stratégie par défaut de Hibernate, qui ne charge pas toutes les relations d'une entité automatiquement, mais seulement lorsqu'on tente réellement de les utiliser.
Le problème est qu'il est nécessaire d'avoir une Session hibernate ouverte, et qu'habituellement, celle-ci est fermée dans la couche service.
Pour résoudre le problème, si la SessionFactory est configurée dans un fichier de contexte Spring, un filtre est à notre disposition pour garder la session ouverte : OpenSessionInViewFilter. Il suffit donc de l'ajouter dans le fichier web.xml :
| ||
lien : Javadoc OpenSessionInViewFilter |
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2004 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.