记录一下工作中碰到的一些问题
1,前端返回值空字符串还是null
后端返回为null的属性,前端控制台 network 不会显示
字符串,数字,对象,为空的时候可以直接返回空字符串,数组的话,还是看情况的,一般情况,数组为空的时候,最好返回空数组,不要返回 空字符串、null 啥的,因为前段判断空字符串的 空数组的方法不一样。 不过这些都不是定死了,可以具体问题具体分析。
springboot中返回值json中null转换空字符串
spring boot 默认使用jackson,上面文章是讲述换成fastjson后,但是相关jackson相关注解会失效,下面文章有写到
fastjson 前端对象null转为空字符串 bug
定制jackson的自定义序列化(null值的处理)
2,linxu tail 命令 和 grep结合使用,过滤日志
//查询往后 A
//查询上下 -C
//查询往前 -B
tail -f /usr/local/app/hmsp.log | grep "/mshApi/getSignatureInfo, response return data" -A 10
3,拦截器中获取request post请求中的参数
问题:拦截器中进行权鉴操作
拦截器中获取request post请求中的参数
关键是要弄个过滤器把流进行传递
4,redis 分布式锁
公司的服务器是主从,可能出现资源争夺导致脏数据情况
基于Redis的分布式锁实现
基于LUA脚本的Redis分布式锁(SpringBoot实现)
5,fastjson序列化和反序列化两个规则
@JsonProperty 展示给前端,后端 访问其它接口时,反序列化是发现大小写不影响
fastjson 两个规则
忽略‘-’和‘_’;
忽略大小写。
6,java发送邮件
7,java压缩文件或文件夹
8,断开的管道 java.io.IOException: Broken pipe
客户端读取超时关闭了连接,这时服务器往客户端再写数据就发生了broken pipe异常!
前端(nginx)请求超时,关闭连接,服务端就会报出这个错
9,MultipartFile 文件上传 File has already been moved - cannot be transferred again
原因:MultipartFile 流只能使用一次