背景
我是 Spring MVC 的新手,但我可以清楚地看到使用带有 @Controller 注释的类而不是 HttpServlet 的子类的好处。
问题
由于 spring 允许您拥有多个 servlet-context 文件,因此我假设有些人将带注释的控制器类和标准 HttpServlet 混合在一起。我的问题是你为什么想要?那么您是否不必费心将那个 servlet 连接到适当的视图而失去了选择 Spring MVC 的原因?
背景
我是 Spring MVC 的新手,但我可以清楚地看到使用带有 @Controller 注释的类而不是 HttpServlet 的子类的好处。
问题
由于 spring 允许您拥有多个 servlet-context 文件,因此我假设有些人将带注释的控制器类和标准 HttpServlet 混合在一起。我的问题是你为什么想要?那么您是否不必费心将那个 servlet 连接到适当的视图而失去了选择 Spring MVC 的原因?
Spring 的主要思想之一是使其不显眼——如果您决定在应用程序中使用 Spring,则不应被迫重写所有代码。
从这个角度来看,在 Spring 应用程序Servlet
之外使用 sDispatcherServlet
是很合理的:您可能有Servlet
s 包含遗留代码,或者以 s 实现的第三方库Servlet
(Web 服务、RPC、其他 Web 框架等)。您不想一次重写这些遗留组件,但是 Spring 允许您通过将应用程序的核心服务移动到根应用程序上下文来利用其在这些组件中的优势,以便您也可以从 Spring MVC 控制器中使用它们和其他Servlet
的一样。
Spring 注释控制器与 Spring DispatcherServlet 结合使用。这是 HttpServlet 的 Spring 实现,它提供了文档中描述的所有功能。
DispatcherServlet 在 web.xml 中配置,并提供了 Spring 配置的位置。这可以是一个或多个 xml 文件,或者注释为 @Configuration 的多个类之一(来自 Spring 3.1)。
此配置应包含元素(或@EnableWebMvc)。这将触发 spring 在应用程序启动时扫描 @Controller 类的类路径。