该如何研究SpringMVC的文件上传的源码呢?
研究源码并不是仅仅知道程序是怎样运行的,而应该从宏观的角度、不同的立场去看待问题。以SpringMVC文件上传的源码为例(麻雀虽小,五脏俱全),我们应该从下面几个方面去分析和研究:
#1 文件上传的基本规则:以什么样的格式来传输数据?
- get or post ?
- 与其他字段如何共存 ?
- 多文件上传?
#2 站在apache fileupload的角度
- apache fileupload目的是想写一个通用的解析文件上传的jar包,可以供所有的java web框架来方便使用
- 它对外应该提供哪些API来方便外界使用?它又需要外界的哪些参数?
- 哪些内容应该是它做的?
- 哪些内容不应该由它来做?
#3 站在SpringMVC框架的角度
- 它不再重复造轮子,使用其他一些jar包即可
- 定义自己的方便用户使用的接口,如 MultipartFile、MultipartResolver,来屏蔽掉底层所使用的jar包
- 需要将底层jar包和自己的接口结合起来
##所以不仅仅要理解程序,还需要理解整体的架构与思路,理清每一个角色的职责范围。如当需要限制上传的文件大小时,这一部分是谁的职责呢?
##如果我们都以上述方式要求自己,则源码分析才更有价值和意义,不然我们永远就只能处在类与类跳转的迷雾中
来源:oschina
链接:https://my.oschina.net/u/2287728/blog/378836