SpringMC工作原理
◆ ◆ ◆ ◆
在小明同学多年的面试生涯中,无论是初级岗位还是高级岗位,这个基本是被面的第一个问题。起初也不知道为啥……然而当我去面试别人的时候,猛然发现也会随口问了这个问题……因为……我需要时间去细看别人简历……这个问题刚好可以磨蹭一段时间……哈哈,开个玩笑。其实从这个问题就可以大致了解面试者情况。回答得好,不代表你有多强,但是回答不好,肯定就是个菜鸡。
一般大致会这么问:
1.介绍一下SpringMVC的工作原理。
2.用户点击一个按钮之后,Spring是怎么处理的?
SpringMVC工作原理图
用户发送给请求到前端控制器DispatcherServlet。
DispatcherServlet收到请求调用HandlerMapping处理器映射器
处理器映射器找到具体的处理器(注解或者xml配置),生成处理器对象以及处理器拦截器(若有),返回给DispatcherServlet
DispatcherServlet调用HandlerAdapter处理器适配器
HandlerAdapter经过适配调用具体的处理器(Controller)
Controller执行完成返回ModelAndView
HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet
DispatcherServlet将ModelAndView传给ViewReslover视图解析器
视图解析器解析后返回具体的View
DispatcherServlet根据View进行渲染视图(将模型数据填充到视图)
DispatcherServlet响应用户
具体组件
◆ ◆ ◆ ◆
DispatcherServlet前端控制器:是整个流程的控制中心,相当于中央处理器,接收请求,响应结果,降低各个组件的耦合度,提高组件的扩展性。
HandlerMapping处理器映射器:根据url来寻找Handler,可以用配置文件方式、注解等
HandlerAdapter处理器适配器:按照规则去执行Handler
Handler处理器:这个就是我们写的东西了,就是业务需求
View Resolver视图解析器:根据逻辑视图名解析成物理视图名,即具体的页面地址,再生成view视图对象,最后对view进行渲染将处理结果通过页面展示给用户
View视图:比如jsp,不多解释
具体面试时使用
◆ ◆ ◆ ◆
原理和流程已经在上面了,面试的时候具体要怎么做呢,拿出你的纸和笔,嘴里说着上面的每一个步骤,然后把图画出来,画到具体的组件,就解释一下组件的作用,这样解释清楚这个了,至少几分钟就过去了。
一般情况下,能够把图全部画出来,流程都说出来,就会进行下一个问题,面试官不会继续深究……小明同学几乎没遇到过面试官继续问下去的,大概他们也就懂这些,问下去说不定面试官也会露馅的。
以上过程适用于工作经验一到三年的java开发,再高级一点,可能要从源码入手,才能讲得很详细,把面试官怼得心服口服。但是呢,如果要扯源码,什么List,HashMap,排序,面试官更愿意听,那也是他们常年面试准备的重点。所以个人觉得对于SpringMVC点到即止,小明对面试者的要求也就是能回答到这样也就够了。之后的HashMap之类的会从源码入手,记得关注后续哦~
顺便补充一下MVC:
M:model模型,即业务逻辑,entity+service+dao
V:view视图,即展示页面,html,jsp
C:controller控制器,接受请求,调用模型,返回视图
- end -
祝各位人人都能涨20K!
每个人都是技术大牛!
点击关注,不要走开哟~
- TEN END -