SpringValidation用法和使用细节
对于aip ,参数校验可能是必须的, 比如前端的一些弱类型参数 , 需要我们必须进行检验.
Spring基于JSR303规范, 实现了一套体系
具体的使用可以参考这篇文章 https://blog.csdn.net/lzy_168/article/details/81099699 , 我觉得写得比较全. 但是不一定有我细节. 简单 校验
最简单的就是 , 需要注意在类中需要加入 @Validated 关键字开启校验. 对于Length字段校验才有效. @Validated @RestController @SpringBootApplication public class SpringValidateApplication { public static void main(String[] args) { SpringApplication.run(SpringValidateApplication.class, args); } @GetMapping(path = "/echo") public String echo(@Length(min = 5,max = 10,message = "msg长度5-10位") @RequestParam("name") String msg) { return "hello "+msg; } }嵌套 校验@ToString @Setter @Getter public class User { @NotBlank String id; String name; // 加上@Valid可以实现嵌套校验Auth. 不加不会去校验的. @Valid @NotNull Auth auth; @Getter @Setter static class Auth { @Length(min = 4, max = 4) String type; } }
调用 , 因此只能使用一些 , 比如RequestBody场景可以反序列. 因为普通的 x-www-form-urlencoded 是无法拿到子对象的.@PostMapping(path = "/user/add") public User userAdd(@Validated @RequestBody User name) { return name; }分组情况 校验
我们更新操作的时候要求, 我们的id字段不能为空.
此时可以先定义一个接口. public interface Update { }
然后字段分组 @ToString @Setter @Getter public class User { /** * 更新操作不能为空 */ @NotBlank(groups = {Update.class}) String id; // name字段不能为空都. @NotBlank String name; }
最后 @PostMapping(path = "/user/update") public User updateUser(@Validated(value = {Update.class}) @RequestBody User name) { return name; }注意事项
比如此时的需求改了, 我们同时还要校验, 姓名长度在 6-12位之间,通用的属性都是 public class User { /** * 更新操作不能为空 */ @NotBlank(groups = {Update.class}) String id; /** * 所有操作都是 长度在 6-12位之间.注意必须配合NotBlank或者Null使用,不然无效.不传入不会监测 */ @NotBlank @Length(min = 6, max = 12, message = "用户名长度在6-12位之间") String name; }
此时我们启动在申请一次 , 比如申请如下, 发现也能通过, 那是为什么 Length校验失效呢. 此时我们发现了问题 { "id":"1", "name":"tom" }
如何解决呢, 需要修改这个, 因为默认group在 default组下 . 所以我们Update组不在里面所以不执行. public interface Update extends Default { }
此时再次申请, 发现走了校验. 自定义校验@Documented @Constraint(validatedBy = PhoneNumberValidator.class) @Target({ElementType.FIELD, ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface PhoneNumber { String message() default "Invalid phone number"; // 组还是很有用的. 必要事件使用 Class[] groups() default {}; Class[] payload() default {}; }
实现接口 ConstraintValidator 拓展具体实现.public class PhoneNumberValidator implements ConstraintValidator { @Override public boolean isValid(String phoneField, ConstraintValidatorContext context) { if (phoneField == null) return true; // can be null return phoneField != null && phoneField.matches("[0-9]+") && (phoneField.length() > 8) && (phoneField.length() < 14); } }
广州创品知识产权服务有限公司解读平行进口与商标侵权相关的法律随着贸易便利程度的日益提高,特别是跨境电商业态使得货物跨境流动更加便捷,以及从事贸易主体的多样化,使得许多经营者可以不通过商标权利人指定的渠道自由进出口带有商标的货物。此类平行进口
商标被侵权怎么办?最怕商标被侵权,不仅损害公司利益还有一堆麻烦事要处理,那么什么是商标侵权,商标侵权怎么办?我们一起看看吧!侵权行为有下列行为之一的,构成侵犯商标侵权行为(一)未经商标注册人的许可,
创品聚焦丨当注册商标碰上注册商标很多律师在代理商标权利人进行维权的过程中,经常遇到一些傍名牌者,或是理直气壮或是一脸无辜地,拿出自己的商标注册证,抗议道瞧,我也是有商标的啊,你告我干甚?有时代理人前期没有对侵权主
创品知识产权辜晋生兰加余入选广东知识产权保护协会专家库9月18日,广东知识产权保护协会第二届专家聘书颁发仪式在广州希尔顿逸林酒店举行。广东知识产权保护协会成立于2004年3月,是我国知识产权保护领域的第一家省级社团组织。协会于2016
创品聚焦丨35类商标真的是万能商标吗?有不少商标代理机构在帮客户申请商标选择注册类别时,都会力荐客户注册35类商标。他们会说35类商标是万能的所有品牌打广告都要用到35类之类似乎很有道理的话。35类商标真的如此万能吗?
咖啡品牌ChamberlainCoffee视觉形象升级ChamberlainCoffee于2019年推出,是19岁的YouTube网红EmmaChamberlain的咖啡品牌。最初只作为一次性袋装速溶咖啡出售,但在味道上没有得到很好的
汗液护理产品HIKI视觉形象设计HIKI于今年年初推出,是一个全新汗液护理产品品牌,产品包括除臭剂止汗剂爽身粉防晒棒和湿巾。由arfa公司开发,这是一家以数字为主导的消费产品公司,专注于个人护理领域。早些时候,他
纽约洛克菲勒中心RockefellerCenter视觉形象升级洛克菲勒中心(RockefellerCenter)位于美国纽约市曼哈顿,于1939年竣工,是一个由19栋商业大楼组成的建筑群,横跨纽约48街和51街,第五大道和第六大道之间,中心总
打工人的解压小技巧,与小鹏P5来场夜的邂逅早九晚六的搬砖生活,让我这个打工人感受到了无尽的压力与疲惫,父母建议我多做些运动,即可释放压力缓解疲劳,还可以让身材变得更具美感。于是我计划每晚夜跑,享受一下运动带来的惬意。然而家
奔驰性能敞篷车AMGSL亮相,回归22座首度导入4驱拥有近70年车系历史的奔驰SLClass改款登场!此次新R232世代不仅挂上AMG,包括底盘平台设计及内装皆大幅跃进,并回归为22座采4轮驱动与织布顶篷等设计,共有SL55SL63
从不怎么样到惊艳到我,8位燃油车车主带你体验电动车不怎么样没兴趣不喜欢不想被撂在路上对许多燃油车车主来说,电动车或许仍然是个否定的选择。可是,他们真的尝试过吗?为此,我们邀请了8位来自各行各业不同年龄段的燃油车车主,带他们真实地体
云合智网完成新一轮超4亿元融资,累计融资近10亿元投资动态高端网络芯片领先企业云合智网近日完成超4亿元PreA轮融资。本轮融资由海松资本领投,LFC混沌投资银盛泰资本萧山开发区产业基金招商证券中关村芯创基金分享投资华盖资本跟投,老股东前海
uniapp之小程序(wx)热更新文件App。vueonLaunch()小程序主动更新this。updateManager(),methods小程序主动更新updateManager()constupdateMan
努比亚也杀疯了,重回性价比之巅,骁龙880W144Hz仅3399元进入到2月底,新旗舰发布几乎要一天一部的意思。昨天OPPOFindX5系列发布,今天努比亚Z4Pro正式亮相。努比亚曾经也是国内线上的性价比品牌,去年的Z3Pro整体表现还是不错的
8寸平板电脑真的不受消费者欢迎吗?近两三年,我们会发现一个现象,平板电脑的尺寸越来越大了。几年前华为公司还有7寸,8寸平板,现在都是10寸以上了。包括小米公司新出的平板都是11寸左右了。到底是消费者不需要小尺寸平板
看书时想把好的内容整理出来,本子记又不方便,有电子手写的设备推荐吗?题主您好,大家好!我推荐一下吧!虽然价格不低但感觉能满足题主的需要。最主要的是一款产品多用途,钱不白花。苹果的iPadApplePencil苹果平板加上手写笔目前公认写作的利器,尤
刚刚,字节跳动28岁员工抢救无效,不幸离世来源HR新逻辑HRL原创首发作者HRLogic编辑中心嗨,这里是HR新逻辑!月初才曝出B站25岁员工猝死的消息,月末,又传出字节28岁员工猝死,留下了刚怀孕两个月的妻子,以及正在按
在海外用支付宝和微信支付,是一种什么体验?总的来说,使用微信更多,很多地方没有支付宝,但是有微信支付。这主要是因为海外也有不少人使用微信wechat。而且微信支付9折呢!部分店铺可以使用支付宝,都会有优惠的。但是总体上微信
想问问大家,重要的照片你们一般存在什么地方?保险柜重要的照片要放在两个地方。作为双重备份。移动硬盘方便长期存放固态U盘。随时方便手机的使用。照片我就存在电脑里。不过每年都会选择一些拍的不错的照片洗出来,存在相册里。百度云也有
5G网络商用后,电信光纤将何去何从?5g网络和光纤会有一定的竞争,但是仍然有非常大的不同,而且5g需要巨大的硬件设备覆盖,这对于运营商来说非常大的成本,所以在相当长的一段时间,5g和光纤还将互相配合补充。就像4g商用
大家好,阿里巴巴市值能否超越亚马逊呢?这个问题现在看不对啦,阿里巴巴已经超越过亚马逊。问题应该是,是否会再次超越?1999年马云带领18位创始人在杭州的公寓中正式成立了阿里巴巴集团的时候,肯定期待过未来阿里巴巴的高度,
磷酸铁锂电池真的安全吗?磷酸铁锂电池非常安全的,甚至一些铅酸电池还没有它安全呢,关于续航方面,磷酸铁锂电池确实不错,像我买的绿源液冷电动车INNO7,它配备了48V26Ah的磷酸铁锂电池,续航能达到110