68 votes

Printemps + Web MVC: dispatcher-servlet.xml vs applicationContext.xml (plus communs en matière de sécurité)

Quelle est la façon correcte d'utiliser les deux contextes: dispatcher-servlet.xml et applicationContext.xml? Ce qui va où?

Je veux écrire un assez typique application déployée dans un conteneur de servlet. Il a certains contrôleurs avec JSP points de vue. Il a aussi quelques non trivial logique sur le back-end. Dois-je vraiment besoin des deux contextes? Comment sont-ils liés les uns aux autres? Comment puis-je décider quoi mettre où?

Aussi, je veux utiliser le Printemps de sécurité pour mon application. Je souhaiterez peut-être utiliser ses fonctionnalités (comme la sécurité déclarative avec annotations) dans web les contrôleurs ainsi que dans les couches plus profondes. Comment dois-je configurer la sécurité au travail dans ce cas? Devrait-il être dans une de ces fichiers (qui?), ou les deux?

77voto

Kevin Bowersox Points 48223

L' dispatcher-servlet.xml le fichier contient l'ensemble de votre configuration pour Spring MVC. Donc, en lui, vous trouverez les haricots comme ViewHandlerResolvers, ConverterFactories, Interceptors et ainsi de suite. Tous ces haricots sont une partie de l' Spring MVC qui est un cadre qui structure la façon dont vous gérez les demandes web, fournissant des fonctionnalités utiles telles que la liaison de données, une vue de la résolution et de la demande de la cartographie.

L' application-context.xml peut éventuellement être incluses lors de l'utilisation d' Spring MVC ou tout autre cadre de qui que ce soit. Cela vous donne un conteneur qui peut être utilisé pour configurer d'autres types de beans spring qui fournissent de l'aide pour des choses comme la persistance des données. En gros, dans ce fichier de configuration est l'endroit où vous tirez dans tous les autres goodies du Printemps.

Ces fichiers de configuration sont configurés dans le web.xml fichier comme indiqué:

Répartiteur De Config

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/spring/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

Demande De Config

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/application-context.xml</param-value>
</context-param>

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Pour configurer les contrôleurs, les annoter avec @Controller alors inclure les éléments suivants dans l' dispatcher-context.xml le fichier:

<mvc:annotation-driven/>
<context:component-scan base-package="package.with.controllers.**" />

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X