js使用for in取动态key参数
It’s a nice day for coding,isn’t it?Ha ha! 今天遇到一种服务端响应的参数,key是动态的 就像这样 我们一般静态key取值就是直接 1data.data.id.username 但这种id是动态的 我们就只能用for in的方式取值了 12345678var data = { "msg": "查询成功!", "code": 200, "data": { "2f793b1baf4b441c99a12d22af6678aa": { "username": "ruben2", "password": null, "userInfo": null, "genderEnum": null }, "59fa61fe88b64df58568a7046f17ab38": { &qu...
枚举的使用及校验
今天聊聊枚举咋用 先定义一个枚举 12345678910111213141516171819202122232425262728293031323334353637383940414243444546package com.ruben.enumration;import com.alibaba.fastjson.annotation.JSONType;import com.fasterxml.jackson.annotation.JsonFormat;/** * @ClassName: GenderEnum * @Description: * @Date: 2020/8/18 19:03 * * * @author: achao<achao1441470436 @ gmail.com> * @version: 1.0 * @since: JDK 1.8 */@JSONType(serializeEnumAsJavaBean = true)@JsonFormat(shape = JsonFormat.Shape.OBJECT)public enum GenderEnum...
spring实现Validator校验和全局异常处理
开整! 首先引入依赖 12345678910111213<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator --> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.1.5.Final</version> </dependency> <!-- FastJson --> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency>...
springboot全局异常处理器
直接贴代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051package com.ruben.resolver;import com.ruben.utils.AjaxJson;import lombok.extern.slf4j.Slf4j;import org.springframework.validation.FieldError;import org.springframework.web.bind.MethodArgumentNotValidException;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.RestControllerAdvice;import java.util.List;import java.util.stream.Collectors;...
springboot实现Validator校验
一个优秀的后端,是不会相信任何传入的参数的 要做到这一点,以前我们是写大量的判断代码来验证数据的格式 在开发中,我们实际不这么干,我们使用Hibernate Validator来进行参数校验 它实现了JSR 303规范,使我们的代码的健壮性大大提高 先列出一些常用注解 约束注解 详细信息 @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @AssertFalse 被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @Size(max, min) 被注释的元素的大小必须在指定的范围内 @Digits (in...
mysql join
首先先放张图 今天聊聊mysql表join连接,其本质是拿主表每条数据取出来和子表每行数据进行循环比较,如果满足则返回,不满足返回null 首先是内连接 两者之间取交集,两边都满足返回,不满足不返回 语法很简单 1234567SELECT * FROM tb_goods a INNER JOIN tb_goods_desc b WHERE a.id = b.goods_id 其中,INNER可以省略掉只写个JOIN 然后是左外连接 左外连接,此时可以理解为理解 左表为主表,右表为子表。在条件不满足时,左表数据存在,右表数据为null 简单来说就是结果集包含左表所有行,右表不匹配则为null 12345SELECT * FROM sp_user a LEFT OUTER JOIN tb_seller b ON a.seller_id = b.seller_id 其中,OUTER可省略 反向操作一波就是右外连接 1234567SELECT * FROM tb_seller a RIGHT OUTER JOIN sp_user b ON a.seller_id = b.sell...
fastjson基本使用
alibaba的fastjson真香啊 首先是依赖 123456<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.73</version></dependency> 这里列举点简单的应用 首先是对象转JSON 1234567Map<String, Object> map = new HashMap<>(1 << 3);map.put("data", "操作成功!");map.put("code", 200);map.put("success", true);map.put("...
url怎么传数组
前两天遇到一个奇葩问题,url怎么传数组参数到后端,后端怎么接收 先申明,一般项目中绝不会这么传。。。 其实很简单,前端转换成JSON进行一次Base64加密,后端进行一次Base64解密再从json转换成对象就可以 前端base64加密解密方法: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114//1.加密 var str = '内容'; var base = new Base64(); var result = base.encode(str); document.write(resu...
程序员,你还在用postman吗
每次写完一个接口,都需要日常的打开postman测试接口,测试完后,又要把结果复制到接口文档里,给上备注等等 最近公司开发在用这个好东西:runapi 它可以测试完直接生成接口文档,免去从postman复制一大堆参数的烦恼 runapi用完真香,谁用谁知道,那么在哪能免费下载到runapi呢?我已经帮你们把链接放在下面啦!附带说一句,这玩意生成的接口文档链接可以部署在自己的局域网本地哦~这样就不会被别人看到啦!是不是很香? 官网链接
java巨大字符串截取
string转list,分段截取 比如传入rubenrubenruben和5,得到的list就是{"ruben","ruben","ruben"}这样的 1234567891011121314151617181920/** * @param initial 初始字符串 * @param interval 分段长度 * @return */ public static List<String> stringSplit(String initial, Integer interval) { List<String> result = new LinkedList<>(); StringBuilder tmp = new StringBuilder(initial); int length = tmp.length(); while (length > 0) { ...
