我已经根据教程创建了一个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 />
答案 0 :(得分:1)
设置Spring以同时使用mvc-config.xml
和application-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}}提供了功能的超集