SpringMVC生命周期—整体视图
我是Spring的新手。
我希望验证对SpringMVC生命周期的以下理解,以便将它们放在整体视图中:
整个过程是请求驱动的。
有一个前端控制器模式,Spring
MVC中的前端控制器是DispatcherServlet。
根据用户的每个传入请求,Spring会按此处所述管理整个生命周期。
从总体上看,DispatcherServlet将请求分派到后端的服务控制器。完成此操作后,它会将其交给MVC的“视图”组件,以准备响应用户的视图。
更详细地说,
DispatcherServlet使用处理程序来决定“哪个控制器”来满足该请求。
控制器应该是“轻量级的”(作为一种良好的设计实践,应与后端的服务过程分离),它们持有对服务的引用并调用正确的服务。他们的“任务”是控制服务过程以构建模型,并将其交还给调度程序以进行下一步。
View组件本身包含两部分:首先,ViewResolver为View选择正确的外观类型,以将模型转换为最终格式供用户使用。
从开发人员的角度来看,DispatcherServlet是一个幕后事物。我要做的就是在web.xml中定义和配置(如有必要)。作为开发人员,我实例化了ApplicationContext(有许多ApplicationContext类型-
我根据需要选择一种,通常是WebApplicationContext(?))。AplicationContext是使用.xml文件中的描述创建所有Servlet
/ bean(包括DispatcherServlet)的工厂。然后DispatcherServlet在幕后运行并管理整个过程-
使用注释或它们的.xml描述,视图,处理程序,验证器等来查找和获取控制器。
我想知道此说明是否成立-有效且完整,以及其中是否缺少大块内容。
提前致谢。
回答:
您的问题没有很好的答案。“可以”就可以了。
您可以使用xml文件或注释或两者的组合来配置spring。
您不需要使用Spring
MVC编写servlet,但是可以。通常,您可以(也许应该)创建控制器类(通过扩展Spring控制器类或使用@Controller注释标记一个类)。
控制器的“任务”是执行请求的必要处理。他们不只是“控制服务流程”
没有“交还”给调度员。
必须在web.xml文件中配置DispatchServlet,这决不是可选的。
您可以(也许应该)在控制器类和将从控制器类调用的任何Web服务之间建立一层。
您可以具有多个applicationContext或使用一个applicationContext。
通常,视图是一个JSP文件。
控制器应添加视图用来显示非静态信息的DTO(数据传输对象)。
我删除了对VO对象的提及,我(好像很多人一样)错误地将DTO和VO模式混为一谈。
没有“幕后”。DispatcherServlet接收请求,并将其传递到适当的控制器进行处理。
阅读Spring框架参考的第17节
以上是 SpringMVC生命周期—整体视图 的全部内容, 来源链接: utcz.com/qa/425588.html