2014-05-20 3 views
0

J'ai créé une application de printemps basée sur des tutoriels, et il y a quelque chose qui n'est pas complètement clair pour moi que j'espère que quelqu'un peut éclaircir.Configuration de ressort pour les annotations

J'ai 2 fichiers de configuration - mvc-config.xml qui est pour la servlet Dispatcher et application-config.xml qui est pour les beans qui composent l'application.

Si je souhaite utiliser des annotations dans les deux contrôleurs et dans mes beans (daos et services), dois-je inclure les éléments suivants dans les deux fichiers xml ou ces éléments sont-ils hérités?

<annotation-driven /> 
<context:component-scan base-package="com.ws.jaxb" /> 
<context:annotation-config />  

Répondre

1

Que se passe lorsque vous Spring de configuration pour utiliser les deux mvc-config.xml et application-config.xml est que deux contextes d'application sont créés. Le contexte racine (correspondant à application-config.xml) et le contexte Web (correspondant à mvc-config.xml).

Dans votre cas, ce que vous devez faire est quelque chose comme ce qui suit pour obtenir tout pour fonctionner comme prévu:

-mvc config.xml

<mvc:annotation-driven /> <!-- for standard Spring MVC features --> 
<context:component-scan base-package="com.ws.jaxb" use-default-filters="false"> 
    <context:include-filter expression="org.springframework.stereotype.Controller" type="annotation"/> 
</context:component-scan> 

-config d'application .xml

<context:component-scan base-package="com.ws.jaxb"> 
    <context:exclude-filter expression="org.springframework.stereotype.Controller" type="annotation"/> 
</context:component-scan> 

Le code mentionné ci-dessus a pour effet d'ajouter des contrôleurs uniquement au contexte Web alors que tout le reste des beans Spring est ajouté au contexte racine. Notez également que <context:annotation-config/> n'est pas nécessaire puisque <context:component-scan> fournit un ensemble de fonctionnalités

+0

Merci pour la réponse thats a beaucoup aidé, je vais changer ma config maintenant à ce que vous suggérez, pourriez-vous répondre à une dernière question? La balise mvc: annotation pilotée est-elle UNIQUEMENT nécessaire dans la configuration du contrôleur (mvc) ou est-ce aussi nécessaire dans ma configuration de beans? Merci – berimbolo

+0

Votre bienvenue! '' ne devrait être présent que dans 'mvc-config.xml' – geoand

Questions connexes