注释的Spring配置

时间:2014-05-20 08:36:12

标签: xml spring model-view-controller annotations config

我已经根据教程创建了一个spring应用程序,并且有一些东西对我来说并不完全清楚,我希望有人可以清理。

我有2个配置文件 - mvc-config.xml用于调度程序servlet,application-config.xml用于构成应用程序的bean。

如果我想在控制器和我的bean(daos和服务)中使用注释,我是否需要在两个xml文件中包含以下内容?或者这些内容是否继承?

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

1 个答案:

答案 0 :(得分:1)

设置Spring以同时使用mvc-config.xmlapplication-config.xml时会发生什么,即创建了两个应用程序上下文。根上下文(对应于application-config.xml)和Web上下文(对应于mvc-config.xml)。

在您的情况下,您需要做的事情就像以下一样,以使一切按预期工作:

<强> 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.xml中

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

上面提到的代码只能将控制器添加到Web上下文,而所有其余的Spring bean都添加到根上下文中。 另请注意,<context:annotation-config/>不需要<context:component-scan>,因为{{1}}提供了功能的超集