一个工作了7年的粉丝,他说在面试之前,Spring这块的内容准备得很充分。
而且各种面试题也刷了,结果在面试的时候,面试官问:”说说你对Spring MVC的理解“。
这个问题一下给他整不会了,就是那种突然不知道怎么组织语言,最后因为回答比较混乱没通过面试。
ok,对于这个问题,我们来看看普通人和高手的回答。
需要高手面试文档(附赠阿里内部十万字面试文档)的小伙伴可以扫描文章底部二维码
普通人:
嗯。。。。。。。
高手:
好的,关于这个问题,我会从几个方面来回答。
首先,Spring MVC是是属于Spring Framework生态里面的一个模块,它是在Servlet基础上构建并且使用MVC模式设计的一个Web框架,
主要的目的是简化传统Servlet+JSP模式下的Web开发方式。
其次, Spring MVC的整体架构设计对Java Web里面的MVC架构模式做了增强和扩展,主要有几个方面。
-
把传统MVC框架里面的Controller控制器做了拆分,分成了前端控制器DispatcherServlet和后端控制器Controller。
-
把Model模型拆分成业务层Service和数据访问层Repository。
-
在视图层,可以支持不同的视图,比如Freemark、velocity、JSP等等。
所以,Spring MVC天生就是为了MVC模式而设计的,因此在开发MVC应用的时候会更加方便和灵活。
Spring MVC的具体工作流程是,浏览器的请求首先会经过SpringMVC里面的核心控制器DispatcherServlet,它负责对请求进行分发到对应的Controller。
Controller里面处理完业务逻辑之后,返回ModeAndView。
然后DispatcherServlet寻找一个或者多个ViewResolver视图解析器,找到ModeAndView指定的视图,并把数据显示到客户端。
以上就是我对Spring MVC的理解。
总结
我培训过3W多名Java架构师,我发现他们对技术的理解只是停留在使用层面,
并没有深层次的思考这些技术框架的底层设计,导致他们在到了工作5年以后。
想转架构的时候,缺少顶层设计能力和抽象思维。
喜欢我的作品的小伙伴记得点赞和收藏。
需要高手面试文档(附赠阿里内部十万字面试文档)或者有不懂的技术面试题想咨询的小伙伴可以扫描下方二维码
↓↓↓↓↓↓↓↓↓↓↓↓↓↓