该如何研究SpringMVC的文件上传的源码呢?
研究源码并不是仅仅知道程序是怎样运行的,而应该从宏观的角度、不同的立场去看待问题。以SpringMVC文件上传的源码为例(麻雀虽小,五脏俱全),我们应该从下面几个方面去分析和研究:
1 文件上传的基本规则:以什么样的格式来传输数据?
- get or post ?
- 与其他字段如何共存 ?
- 多文件上传?
2 站在apache fileupload的角度
- apache fileupload目的是想写一个通用的解析文件上传的jar包,可以供所有的java web框架来方便使用
- 它对外应该提供哪些API来方便外界使用?它又需要外界的哪些参数?
- 哪些内容应该是它做的?
- 哪些内容不应该由它来做?
3 站在SpringMVC框架的角度
- 它不再重复造*,使用其他一些jar包即可
- 定义自己的方便用户使用的接口,如 MultipartFile、MultipartResolver,来屏蔽掉底层所使用的jar包
- 需要将底层jar包和自己的接口结合起来