Comment intégrer un vieux Struts application avec Spring 3.x
je me demandais comment et ce que la préférence façon d'intégrer un Struts 1.x application avec Spring 3.x afin que nous puissions bénéficier de la part du CIO choses.
Juste écrire régulièrement des actions struts, et ajouter l'annotation "@" pour chaque action, de sorte que le printemps va découvrir les actions et crée un haricot. Le "AutowiringRequestProcessor" va trouver le droit de haricot qui correspond à la classe d'action définis dans votre struts-config.xml.
Il est maintenant également possible d'avoir d'autres haricots injecté dans vous de l'Action de classe avec @Autocâblés sur ouvreur(s).
il fonctionne sans ajout de @composant d'annotation. Ne pas annoter les classes d'action par @Component parce que AutowiringRequestProcessor ne prennent pas leurs instances à partir du Printemps BeanFactory il leur faut de jambes de force et appelle ensuite autowireBeanProperties() méthode. Donc, en utilisant @Component résultats sur inutilisé haricots au Printemps contexte.
Utilisation ContextLoaderPlugIn. Déconseillé au Printemps 3.0, mais toujours là.
Je l'ai utilisé avec Struts 1.x et Spring 2.5.x - cela a fonctionné à merveille. Cette approche d'intégration permet d'injecter des beans Spring directement dans Struts actions, ce qui est assez propre et simple.
Cela ne fonctionne pas. Le ContextLoaderPlugin n'est pas disponible dans la version de Printemps après Printemps, 2.x. Struts 1.x n'est pas compatible avec n'importe quelle version de Printemps, après le 2.x. Il est IMPOSSIBLE de configurer n'importe quelle version de Printemps, après le 2.x pour utiliser Struts 1.x. Il est nécessaire de déclasser votre version de Printemps de la mise à niveau de jambes de force. Il serait probablement plus facile de déclasser le Printemps, sauf si vous utilisez une version d'hibernate 3 dernières.x.
Selon d'autres réponses possible. Nous avons utilisé avec succès Printemps 3.0 avec Struts 1.2. Toutes les choses sont possibles ~ vous avez besoin d'avoir un spring-2.x.x jar dans le classpath...
Utilisation ContextLoaderPlugin et de définir le contrôleur struts à l'processorClass "AutowiringRequestProcessor" comme ceci (en struts-config.xml):
action-servlet.xml a un vide haricots fichier de contexte:
Ajouter le suivant init paramètre à l'ActionServlet dans web.xml:
Juste écrire régulièrement des actions struts, et ajouter l'annotation "@" pour chaque action, de sorte que le printemps va découvrir les actions et crée un haricot. Le "AutowiringRequestProcessor" va trouver le droit de haricot qui correspond à la classe d'action définis dans votre struts-config.xml.
Il est maintenant également possible d'avoir d'autres haricots injecté dans vous de l'Action de classe avec @Autocâblés sur ouvreur(s).
Ne pas annoter les classes d'action par
@Component
parce queAutowiringRequestProcessor
ne prennent pas leurs instances à partir du Printemps BeanFactory il leur faut de jambes de force et appelle ensuiteautowireBeanProperties()
méthode. Donc, en utilisant@Component
résultats sur inutilisé haricots au Printemps contexte.OriginalL'auteur Joep
Utilisation ContextLoaderPlugIn. Déconseillé au Printemps 3.0, mais toujours là.
Je l'ai utilisé avec Struts 1.x et Spring 2.5.x - cela a fonctionné à merveille. Cette approche d'intégration permet d'injecter des beans Spring directement dans Struts actions, ce qui est assez propre et simple.
OriginalL'auteur Tomasz Nurkiewicz
Vous pouvez utiliser le ApplicationContextAware interface d'avoir un utilitaire de classe ont accès à l'ApplicationContext.
Vous pouvez alors accéder à la méthode statique de votre classe d'Action.
Pas la solution la plus élégante, mais il fonctionne.
OriginalL'auteur Paul Croarkin
Cela ne fonctionne pas. Le ContextLoaderPlugin n'est pas disponible dans la version de Printemps après Printemps, 2.x. Struts 1.x n'est pas compatible avec n'importe quelle version de Printemps, après le 2.x. Il est IMPOSSIBLE de configurer n'importe quelle version de Printemps, après le 2.x pour utiliser Struts 1.x. Il est nécessaire de déclasser votre version de Printemps de la mise à niveau de jambes de force. Il serait probablement plus facile de déclasser le Printemps, sauf si vous utilisez une version d'hibernate 3 dernières.x.
Nous avons utilisé avec succès Printemps 3.0 avec Struts 1.2.
Toutes les choses sont possibles ~ vous avez besoin d'avoir un
spring-2.x.x
jar dans le classpath...OriginalL'auteur user5878725