【 面试官】那Spring MVC工作流程你说一说?

  • 面试官:Spring MVC说说你的理解?
  • 面试官:那Spring MVC工作流程你说一说?
  • 面试官:有真的实践过吗?
  • 面试官:Spring MVC常见注解有了解过哪些?

大家好,我是南哥。

一个Java学习与进阶的领路人,跟着南哥我们一起Java成长。

文章目录

  1. SpringMVC概况
    1. 如何理解SpringMVC
  2. SpringMVC技术要点
    1. SpringMVC工作流程
    2. SpringMVC搭配Tomcat容器
    3. SpringMVC常见注解

1. Spring MVC概况

1.1 如何理解Spring MVC

面试官:Spring MVC说说你的理解?

大家都知道Spring MVC很强大,南哥问大家一个问题,Spring MVC为什么会出现?一项技术的出现必定是为了解决旧技术考虑不全所积累的软件熵。《程序员修炼之道》在软件的熵一节中对熵的解释很有冲击力,作者是这么说的,大家有没什么触动。

虽然软件开发不受绝大多数物理法则的约束,但我们无法躲避来自熵的增加的重击。熵是一个物理学术语,它定义了一个系统的“无序”总量。不幸的是,热力学法则决定了宇宙中的熵会趋向最大化。当软件中的无序化增加时,程序员会说“软件在腐烂”。有些人可能会用更乐观的术语来称呼它,即“技术债”,潜台词是说他们总有一天会偿还的——恐怕不会还了。

在没有出现Spring MVC之前,老一代的开发者会在Servlet中编写业务逻辑和控制代码,甚至属于后端的业务逻辑也会耦合在了jSP页面。在当时互联网不流行,业务都比较简单的年代,这样写问题不会太大,但随着时间的累积、互联网的爆发,业务复杂度也爆发式上升,这叫新来的实习生程序员怎么上手呢。缺乏统一和清晰的架构模式,会导致应用程序的可扩展性和可维护性降低。

我们先不讲Spring MVC,把MVC拆解出来。MVC(Model View Controller)实践上是一种软件架构思想,这个思想指导把应用程序分为了三个模块,用于编写业务逻辑的模型、用于数据呈现的视图、用于协调前两者的控制器。

在我们Java程序员第一次接触企业框架时,我们最开始一般用SSM来练练手。如果是SSM框架,充当Model的是编写业务逻辑Java类,充当View的是JSP页面,而充当Controller的则是Servlet。总的来说,MVC明确划分了各个模块的责任,不是你负责的东西不允许越线,这明显维护起来好看多了。

好久好久之前南哥练手的第一个项目是坦克大战,和现在一般企业业务把一个Java对象看出是需求的抽象不同,我当时的坦克大战是把一个Java对象看成是一只坦克的载体。大家第一个Java练手项目有什么故事吗?

2. Spring MVC技术要点

2.1 Spring MVC工作流程

面试官:那Spring MVC工作流程你说一说?

Spring MVC工作流程涉及五大组件,大家先预览一遍:DispatcherServlet、HandleMapping、Controller、ModelAndView、ViewResolver。

第一步用户触发浏览器时将请求发送给前端控制器DispatcherServlet,DispatcherServlet就相当于上文MVC架构的C,Spring源码对DispatcherServlet解释为HTTP请求处理程序/ 控制器的中央调度程序。有了中央调度程序大脑,下一步就可以联调其他组件了。

// DispatcherServlet类
package org.springframework.web.servlet;
public class DispatcherServlet extends FrameworkServlet { }

第二步,DispatcherServlet调用处理器映射器HandleMapping,根据用户请求的URL找到对应的业务控制器Contorller。

// HandlerMapping类
package org.springframework.web.reactive;
public interface HandlerMapping { }

第三步,DispatcherServlet请求处理器适配器HandlerAdapter执行Controller,获得业务结后返回一个模型视图对象ModelAndView给到DispatcherServlet。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

Java面试突击 文章被收录于专栏

👉以面试官面试的形式,涵盖了你怒怼大厂面试官、拿下大厂面试所需掌握的核心知识、面试重点! 👉相信一定对你顺利通关面试、拿到理想Offer有所帮助! 👉花费大量精力去制作本专栏,创作不易,各位的支持就是我创作的最大动力!

全部评论

相关推荐

3 6 评论
分享
牛客网
牛客企业服务