byte[]转为MultipartFile

1.背景最近有个文件上传的需求,客户端上传二进制流,服务端接收该二进制文件流进行文件处理。因为项目中有一层参数过滤器,读取过一次request中的参数。接口中需再次从request读取流转为byte数组,最后转为MultipartFile进行文件验证上传操作。request中参数多次读取已在之前的文

#MultipartFile  

Spring Boot前缀为0的特殊配置项处理

1.背景2.问题原因3.解决方法1.背景最近在springboot的yml配置中配置项有个0039,项目中将该值存入Redis,后续从Redis中拿出该值进行操作时发现其值已经被改变不在是0039.2.问题原因​由于springboot在解析yml文件时会将0开头的配置项当作八进制数处理,导致原来有

#Spring Boot  

RestTemplate封装http和https请求

1.背景最近项目有需求封装统一的接口调用工具类。由于项目为SpringBoot所以使用spring推荐的RestTemplate。封装通用的http/https发送GET,POST请求。2.pom引入<dependency><groupId>org.springframewo

#RestTemplate  

SpringBoot集成Redis单节点和哨兵

1.背景springboot使用redis单节点或者只使用哨兵、集群比较简单。yml配置即可,可以省去单独的连接池配置。实际项目中需要灵活切换单机或者哨兵模式,设计思路时如果配置了哨兵则连接池优先初始化哨兵工厂。反之使用单节点的默认redis配置即可。2.pom.xml引入<!--Spring

#Redis   #Sentinel  

API简单限流实现

###背景最近项目有个需求,需要对第三方接口调用加入调用次数限制。随设计自定义注解,使用拦截器拦截方法请求,将单位时间内的请求次数保存到redis。超出限制次数的请求直接拒绝或者异常处理。1.自定义注解@Retention(RetentionPolicy.RUNTIME)@Target({Eleme

#API限流  

多次读取request中的参数值

背景背景:最近项目开发中遇到一个问题,在一个springboot接口项目中需要对一个filter改造。在filter中使用request用流的方式读取过获取参数后,后续的controller中使用@RequestBody读取参数报错,通过阅读源码发现@RequestBody是读取的流的方式,如果在之

#HttpServletRequestWrapper  

记一次spring boot线上项目内存溢出

问题描述今天被告知一个线上项目报错跑不通了,两台同样的项目通过负载提供服务,随即查看生产日志,其中一台正常,另一台发现报错信息为内存溢出,报错堆栈信息如下:2019-09-0713:37:00,667ERROR(DirectJDKLog.java:175)-Servlet.service()fors

#OOM