萌新学习SpringMVC很难吗?来一篇文章让你搞懂

本文从新手角度出发,探讨学习SpringMVC的难点,并建议先学习Servlet。通过对比Servlet和SpringMVC,阐述SpringMVC的优势。接着,详细解释了SpringMVC的请求处理流程,包括DispatcherServlet、拦截器、参数绑定等,并通过源码分析加深理解。文章适合有一定Servlet基础的学习者,有助于理解SpringMVC的工作原理。
摘要由CSDN通过智能技术生成

 

前言

这篇SpringMVC被催了很久了,这阵子由于做整合系统的事,所以非常非常地忙。这周末早早就回了公司肝这篇文章了。

如果关注三歪的同学会发现,三歪最近写的很多文章都是结合了现有的系统去写的。这些问题都是真实开发场景会遇到的、用的上的,这些案例对未工作的同学帮助应该还是蛮大的。

不多BB了,还是进入今天的正题吧「SpringMVC

先简单聊聊SpringMVC

如果你们玩知乎,很可能会看到我的身影。我经常会去知乎水回答。在知乎有很多初学者都会问的一个问题:「我学习SpringMVC需要什么样的基础

我一定会让他们先学Servlet,再学SpringMVC的。虽然说我们在现实开发中几乎不会写原生Servlet的代码了,但我始终认为学完Servlet再学SpringMVC,对理解SpringMVC是有好处的。

三歪题外话:我当时在学SpringMVC之前其实已经接触过另外一个web框架(当然了Servlet也是学了的),那就是「大名鼎鼎」的Struts2。只要是Struts2有的功能,SpringMVC都会有。

当时初学Struts2的时候用的是XML配置的方式去开发的,再转到SpringMVC注解的时候,觉得SpringMVC真香。

Struts2在2020年已经不用学了,学SpringMVC的基础是Servlet,只要Servlet基础还行,上手SpringMVC应该不成问题。

从Servlet到SpringMVC,你会发现SpringMVC帮我们做了很多的东西,我们的代码肯定是没以前多了。

Servlet:

我们以前可能需要将传递进来的参数手动封装成一个Bean,然后继续往下传:

萌新学习SpringMVC很难吗?来一篇文章让你搞懂

 

SpringMVC:

现在SpringMVC自动帮我们将参数封装成一个Bean

萌新学习SpringMVC很难吗?来一篇文章让你搞懂

 

Servlet:

以前我们要导入其他的jar包去手动处理文件上传的细节:

萌新学习SpringMVC很难吗?来一篇文章让你搞懂

 

SpringMVC:

现在SpringMVC上传文件用一个MultipartFile对象都给我们封装好了

萌新学习SpringMVC很难吗?来一篇文章让你搞懂

 

........

说白了,在Servlet时期我们这些活都能干,只不过SpringMVC把很多东西都给屏蔽了,于是我们用起来就更加舒心了。

在学习SpringMVC的时候实际上也是学习这些功能是怎么用的而已,并不会太难。这次整理的SpringMVC电子书其实也是在讲SpringMVC是如何使用的

  • 比如说传递一个日期字符串来,SpringMVC默认是不能转成日期的,那我们可以怎么做来实现。
  • SpringMVC的文件上传是怎么使用的
  • SpringMVC的拦截器是怎么使用的
  • SpringMVC是怎么对参数绑定的
  • ......

萌新学习SpringMVC很难吗?来一篇文章让你搞懂

 

现在「电子书」已经放出来了,但是别急,重头戏在后面。显然,通过上面的电子书是可以知道SpringMVC是怎么用的

但是这在面试的时候人家是不会问你SpringMVC的一些用法的,而SpringMVC面试问得最多的就是:SpringMVC请求处理的流程是怎么样的

其实也很简单,流程就是下面这张图:

萌新学习SpringMVC很难吗?来一篇文章让你搞懂

 

再简化一点,可以发现流程不复杂

萌新学习SpringMVC很难吗?来一篇文章让你搞懂

 

在面试的时候甚至能一句话就讲完了,但这够吗,这是面试官想要的吗?那肯定不是。那我们想知道SpringMVC是做了什么吗?想的吧(不管你们想不想,反正三歪想看)。

萌新学习SpringMVC很难吗?来一篇文章让你搞懂

 

由于想要主流程更加清晰一点,我会在源码添加部分注释以及删减部分的代码

以@ResponseBody和@RequestBody的Controller代码讲解为主,这是线上环境用得最多的

DispatcherServlet源码

首先我们看看DispatcherServlet的类结构,可以清

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值