SpringMVC文件上传源码分析前言

简介:

该如何研究SpringMVC的文件上传的源码呢?

研究源码并不是仅仅知道程序是怎样运行的,而应该从宏观的角度、不同的立场去看待问题。以SpringMVC文件上传的源码为例(麻雀虽小,五脏俱全),我们应该从下面几个方面去分析和研究:

1 文件上传的基本规则:以什么样的格式来传输数据?

  • get or post ?
  • 与其他字段如何共存 ?
  • 多文件上传?

2 站在apache fileupload的角度

  • apache fileupload目的是想写一个通用的解析文件上传的jar包,可以供所有的java web框架来方便使用
  • 它对外应该提供哪些API来方便外界使用?它又需要外界的哪些参数?
  • 哪些内容应该是它做的?
  • 哪些内容不应该由它来做?

3 站在SpringMVC框架的角度

  • 它不再重复造轮子,使用其他一些jar包即可
  • 定义自己的方便用户使用的接口,如 MultipartFile、MultipartResolver,来屏蔽掉底层所使用的jar包
  • 需要将底层jar包和自己的接口结合起来

所以不仅仅要理解程序,还需要理解整体的架构与思路,理清每一个角色的职责范围。如当需要限制上传的文件大小时,这一部分是谁的职责呢?

如果我们都以上述方式要求自己,则源码分析才更有价值和意义,不然我们永远就只能处在类与类跳转的迷雾中

相关文章
|
1月前
|
缓存 前端开发 Java
Spring MVC 面试题及答案整理,最新面试题
Spring MVC 面试题及答案整理,最新面试题
90 0
|
1月前
ssm(Spring+Spring mvc+mybatis)——updateDept.jsp
ssm(Spring+Spring mvc+mybatis)——updateDept.jsp
10 0
|
1月前
ssm(Spring+Spring mvc+mybatis)——showDept.jsp
ssm(Spring+Spring mvc+mybatis)——showDept.jsp
9 0
|
1月前
|
网络安全
ssh(Spring+Spring mvc+hibernate)——DeptDaoImpl.java
ssh(Spring+Spring mvc+hibernate)——DeptDaoImpl.java
12 0
|
1月前
|
网络安全
ssh(Spring+Spring mvc+hibernate)——BaseDaoImpl.java
ssh(Spring+Spring mvc+hibernate)——BaseDaoImpl.java
12 0
|
1月前
|
SQL JavaScript Java
springboot+springm vc+mybatis实现增删改查案例!
springboot+springm vc+mybatis实现增删改查案例!
26 0
|
1月前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
42 1
|
13天前
|
数据采集 前端开发 Java
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
23 3
|
13天前
|
存储 前端开发 Java
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
14 1
|
13天前
|
前端开发 Java Spring
数据之桥:深入Spring MVC中传递数据给视图的实用指南
数据之桥:深入Spring MVC中传递数据给视图的实用指南
29 3