为什么除了注释控制器类之外,还要在springMVC中使用servlet



背景

我是springMVC的新手,但我可以清楚地看到使用用@Controller注释的类而不是HttpServlet的子类的好处。

问题

由于spring允许您拥有多个servlet上下文文件,我假设有些人混合了带注释的控制器类和标准HttpServlet。我的问题是你为什么要这样做?那么,您难道不需要经历将servlet连接到适当视图的麻烦,并失去当初选择SpringMVC的原因吗?

Spring的主要思想之一是使其不引人注目——如果您决定在应用程序中使用Spring,则不应强制重写所有代码。

从这个角度来看,在Spring应用程序中使用DispatcherServlet以外的Servlet可以很容易地证明:您可能有包含遗留代码的Servlet,或者实现为Servlet的第三方库(web服务、RPC、其他web框架等)。您不想一次重写这些遗留组件,但Spring允许您通过将应用程序的核心服务移动到根应用程序上下文来利用其在这些组件中的优势,这样您就可以从Spring MVC控制器以及其他Servlet s中使用它们。

Spring注释控制器与Spring DispatcherServlet一起使用。这是HttpServlet的一个Spring实现,它提供了文档中描述的所有功能。

DispatcherServlet在web.xml中进行配置,并提供Spring配置的位置。这可以是一个或多个xml文件,也可以是注释为@Configuration(来自Spring3.1)的多个类中的一个

此配置应包含元素(或@EnableWebMvc)。这将触发spring在应用程序启动时扫描类路径中的@Controller类。

最新更新