一个没有深度描述,关于springmvc工作原理过程以及涉及的设计模式
2021-01-26 13:15
标签:参考 www ESS hand pre 本质 监听器 etc XML springmvc 本质上是对servlet的扩展,根据servlet规范,一般servlet包含有三个部分: (1).实现servlet接口的程序 根据不同url配置不同servlet,客户端每次请求都会调用service方法处理请求。如是不在分布式环境中,web.xml一次声明产生一个servlet对应,即单例模式,如果实现singleThreadModel接口(2.4后不推荐使用),即原型模式(多例模式)。springmvc实现也就是DispatherServlet前端控制器,默认是单例模式,可以通过注解scope修改,单例模式会共享普通成员变量和静态成员变量,需要保证线程安全性,并发访问不会线程阻塞;原型模式只会共享静态成员变量。 (2).过滤器filter 使用了职责链模式,通过配置文件拦截请求,实现如权限,编码,日志,session处理等特定逻辑,客户端每次调用servlet都会先调用dofilter方法拦截在调用servlet。 (3).监听器listener 使用了观察者模式,spring的ContextLoaderListener会见厅servletContext创建和销毁事件 下面直接看一下,请求处理的流程 1.客户端发起请求,经过filter过滤,到达DispatcherServlet. 2.DispatcherServlet通过HandlerMapping找到对应handler(更近xml或者注解查找),返回处理对象handler和处理拦截器interceptors,DispatcherServlet是委派模式,HandlerMapping是策略模式. 3.DispatcherServlet通过HandlerAdapter调用实际的处理器Controller,HandlerAdapter是适配器模式. 4.Controller执行完成返回ModelAndView. 5.执行结果ModelAndView传递到DispatcherServlet,拦截器interceptors通过preHandle和postHandle在HandlerAdapter调用前后分别做拦截. 6.DispatcherServlet传给ViewResolver让它将逻辑是图解析成view,再次返回给DispatcherServlet. 7. DispatcherServlet根据View调用view.render渲染是视图写入response,然后在经过interceptors的afterCompletion方法和过滤器filter,最后返回给客户端. 参考:https://www.cnblogs.com/lbzhello/p/spring-mvc.html?utm_source=tuicool&utm_medium=referral 最后本文内容是我的浅薄理解,如有任何误解地方感谢指教。 一个没有深度描述,关于springmvc工作原理过程以及涉及的设计模式 标签:参考 www ESS hand pre 本质 监听器 etc XML 原文地址:https://www.cnblogs.com/wangly/p/12853323.html
https://www.cnblogs.com/softidea/p/7245899.html
https://blog.csdn.net/Dongguabai/article/details/83713714
https://blog.csdn.net/xxxge/article/details/52036423
https://time.geekbang.org/column/article/217395
https://blog.csdn.net/jason0539/article/details/44956775
https://blog.csdn.net/u010644448/article/details/53764489
https://www.tuicool.com/articles/aqqiQzz
https://www.tuicool.com/articles/BJbeA3E
https://www.cnblogs.com/bert227/p/10902357.html
上一篇:java注解
下一篇:Python3编写TCP客户端
文章标题:一个没有深度描述,关于springmvc工作原理过程以及涉及的设计模式
文章链接:http://soscw.com/index.php/essay/47289.html