SpringBoot中关于打印MultipartFile类型参数的log问题

SpringBoot中关于打印MultipartFile类型参数的log问题,第1张

SpringBoot中关于打印MultipartFile类型参数的log问题
  1. 问题描述
    最近做的需求,有上传文件参数的情况,即 MultipartFile 的情况
    而且大家的系统框架中也有通过类似 @SysLog 注解切面打印入参日志的需要

    这时存在 MultipartFile 类型的参数的时候,估计就会遇见这种类似的情况

    java.io.FileNotFoundException:
    MultipartFile resource [file] cannot be resolved to URL
    MultipartFile resource [file] cannot be resolved to absolute file
    MultipartFile resource [file] cannot be resolved to absolute file path

    可能这个 MultipartFile 这是一个特殊对象的存在吧 ~ ~ ~

    通过 Jackson 对 javaBean 序列化 MultipartFile 字段成json字符串的时候,有这个问题
    通过 JSonObject 对 javaBean 序列化 MultipartFile 字段成 json 字符串的时候,也会有类似的问题

  2. 借鉴,特殊判断

    // 请求参数处理
    final Map paraMap = new HashMap<>(16);
    if (value instanceof MultipartFile) {
    	MultipartFile multipartFile = (MultipartFile) value;
    	String name = multipartFile.getName();
    	String fileName = multipartFile.getOriginalFilename();
    	paraMap.put(name, fileName);
    }
    

    但是这种是针对这种情况的解决

    @GetMapping("/test")
    @ResponseBody
    public void test(Query query, MultipartFile file) {
    	...........
    	return;
    }
    

    像这种情况的,依然无法解决,只能是 兵来将挡水来土掩 了

    @GetMapping("/test")
    @ResponseBody
    public void test(Query query) {
    	...........
    	return;
    }
    
    public class Query {
    	private MultipartFile file;
    	private Integer page;
    	private Integer size;
    	
    	// 省略Get、Set..........
    }
    

    这个时候就只能将参数对象中的参数Field进行逐一 instanceof MultipartFile,万一出现套娃的情况,就~ ~ ~

  3. 最后
    要么将这种情况的不再进行入参的打印
    要么就进行特殊的判断

在 MultipartFile 上面已经踩了两个坑了。
This is No.2.
The No.1 https://blog.csdn.net/miao_x_m/article/details/120782398

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5684904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存