范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Validated校验在springboot框架中的应用(教程版)

  各位朋友大家好,我是奋斗的小强001,本期更新的内容是:Validated校验在springboot框架中的应用。
  前言b/s系统中对http请求数据的校验多数在客户端进行,这也是出于简单及用户体验性上考虑,但是在一些安全性要求高的系统中服务端校验是不可缺少的。
  Spring3支持JSR-303验证框架,JSR-303 是Java EE 6中的一项子规范,叫做BeanValidation,官方参考实现是hibernate Validator(与Hibernate ORM没有关系),JSR 303 用于对Java Bean 对字段的值进行验证。
  spring-boot中在Controller层里面可以用@validated注解来校验数据再进入业务逻辑层,如果数据异常则会统一抛出异常,方便异常中心统一处理。
  比如,我们判断一个输入的用户名长度限制以及密码的正则验证.使用教程1.添加依赖              javax.validation              validation-api              2.0.1.Final                                  org.hibernate              hibernate-validator              6.0.16.Final            2.Controller层数据使用@validated注解(表示开启,需要根据自己的业务在对应的方法参数上添加)@PostMapping("/userLogin") @ResponseBody public TResult login(@RequestBody(required=true) @Validated User user) {     return  accountServiceInter.login(user);   } }3.然后在实体上声明需要被校验的字段(需要根据自己的业务添加,具体注解在6)@Pattern(regexp = "^[a-zA-Z0-9_]{4,16}#34;, message = "用户名必需4-16位") 	private String username; 	//用户密码 	@Pattern(regexp ="^[a-zA-Z0-9_]{6,16}#34;, message = "用户名必需6-16位") 	private String password;4.全局异常捕获
  4.1网上业务处理  /**      * 处理所有接口数据验证异常      * @param e      * @return      */     @ExceptionHandler(MethodArgumentNotValidException.class)     @ResponseBody     public TResult handleValidException(MethodArgumentNotValidException  e) {         logger.error("程序验证错误",e);         TResult tResult = TResultEncap.setErrResult(ReturnCodeBase.ERR6000);         tResult.setErrMsg(e.getBindingResult().getAllErrors().get(0).getDefaultMessage());         return tResult;     }
  4.2系统业务处理    /**      * Validated注解校验异常      * mdw      */     @ExceptionHandler(MethodArgumentNotValidException.class)      public Object methodArgumentNotValidException(HttpServletRequest request, MethodArgumentNotValidException e) {         BindingResult bindingResult = e.getBindingResult();         if (StringUtils.isNotEmpty(bindingResult.getAllErrors())) {             String defaultMessage = bindingResult.getAllErrors().get(0).getDefaultMessage();             return ApiResult.fail(defaultMessage);         }         return ApiResult.fail("服务器错误,请联系管理员");     }
  当输入不能满足条件时,就会抛出异常,而后统一由异常中心处理, 推荐方式2 5.嵌套校验(特殊情况内嵌套的,关联查询的,需要如下操作)
  如果一个类中包含了另外一个实体类,那么在上面加上@Validated即可,比如下面的  public class Student{         @validated     private List< User>studentList;  } 6.常用注解类型(文字版,根据业务需要添加,多注解添加同时生效)限制	说明 @Null	限制只能为null @NotNull	限制必须不为null @AssertFalse	限制必须为false @AssertTrue	限制必须为true @DecimalMax(value)	限制必须为一个不大于指定值的数字 @DecimalMin(value)	限制必须为一个不小于指定值的数字 @Digits(integer,fraction)	限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction @Future	限制必须是一个将来的日期 @Max(value)	限制必须为一个不大于指定值的数字 @Min(value)	限制必须为一个不小于指定值的数字 @Past	限制必须是一个过去的日期 @Pattern(value)	限制必须符合指定的正则表达式 @Size(max,min)	限制字符长度必须在min到max之间 @Past	验证注解的元素值(日期类型)比当前时间早 @NotEmpty	验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) @NotBlank	验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 @Email	验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式
  优缺点
  优点: 统一接口校验方法,并且可以指定相应的异常信息,避免手动写if else判断参数是否合法
  缺点:在公用一个打开校验的接口时,校验有问题.需要在使用的时候考虑
  注意事项
  1、修改时如果不传此校验的参数会报错,所以修改时也应该传全参。
  2、使用时需在接口参数前添加注解开启此校验。
  3、使用注解时应抛出异常信息。默认的异常信息是英文。
  4、建议大家使用的时候先结合大家的业务使用.
  欢迎大家阅读和探讨.有问题可以随时私信我,谢谢大家. 欢迎大家的点赞和支持。

荣耀magic3和小米MIX4你会选择哪一款?小米MIX4icon售价公布,4999元起小米MIX4售价公布8128版本4999元8256版本5299元12256版本5799元12512版本6299元价格方面荣耀Magic38MotoG60S巴西上市搭载HelioG95芯片组支持50W快充一个月前,有消息称摩托罗拉正在开发MotoG60S新机。与4月份发布的MotoG60机型略有不同,MotoG60S已于今日正式在巴西市场全球首发。由官方配置信息可知,该机采用了支持售价有惊喜,HTC新品来袭,国产12nm工艺加持相信大家已经很久没有听说过HTC新品的消息了,而我们在考虑电子设备的时候,也会不自觉的开始从华米OVApple三星等这些较为主流的厂商中考虑。目前来说,HTC的智能手机业务已经基本酷睿i711700K降价促销睿频5。0售价2499元英特尔酷睿i711700K目前正在京东促销,原价2899元,京东促销售价2499元,还有满减优惠,近期有装机需求的用户可以考虑一。这款处理器游戏性能很强,而且这代酷睿全线搭载超线程荣耀magic3系列海外价格发布来自微博博主长安数码军的爆料,荣耀magic3系列海外的价格已发布荣耀Magic3,8256售价899欧元,约合6384元荣耀Magic3Pro,8256售价1099欧元,约合83腾讯实时合照专利获授权可实现不同终端或地点用户使用天眼查App显示,近日,腾讯科技(深圳)有限公司获得拍照方法终端及系统专利授权,公告号CN108933891B,申请日期为2017年5月。该专利摘要显示,本发明方法包括按照预设规则行业少见!1。15亿用户已获升级,ColorOS11系统还在加速适配众所周知,此前O系品牌就统一整合到了ColorOS系统,进一步提升系统的聚合效率,还实现了跨平台体验的标准化。而目前ColorOS11系统已经在1。15亿新老机型中搭载,这也意味着联发科发布6nm制程中端处理器Dimensity810920近年积极发展5G处理器的联发科(MediaTek),昨日发布了两款全新处理器Dimensity920和Dimensity810,从名字已经可以知道这是Dimensity900和Di售价99元的耳机,还带有显示屏,这是不是太良心了说起音乐相信很多人都喜欢,心情好的时候听听可以很好地放松自己,遇到事情的时候音乐也可以让我们冷静下来,想想怎么解决问题。手机听过离不开耳机,随着技术的不断进步,TWS真无线蓝牙耳机中国累计建设5G基站达96。1万个推动5G应用正当其时中国累计建设5G基站达96。1万个,5G应用创新案例超过1万个推动5G应用正当其时(网上中国)目前,5G融合应用正处于规模化发展的关键期。在各方共同努力下,5G商用发展成绩亮眼,技七夕选礼物成无解送命题?vivoS10Pro成标准答案相信对于大部分男同胞来说,每年七夕节的礼物都是一道无解的送命题。能在这个环节全身而退的男同胞可以说是少之又少,笔者曾经也为七夕礼物绞尽脑汁,不过现在已经找出了七夕礼物的王炸答案vi
本人有一个家政公司,网络推广成本太高,怎样才能低成本获取更多客源?刚好我正在对接家政的网络公司,手上也有很多家政资源。我们可以聊聊,你的城市,现在你的情况,一起做一个对接,降底推广运营成本!发传单宣传你公司优势及优惠活动!家政现状用工成本高,竞争摩托罗拉motoedgeX30新旗舰强势来袭,国产手机会因它降价吗?摩托罗拉motoedgeX30,是一周前摩托罗拉刚发布的一款5G智能手机。也是全球首款,搭载骁龙首发旗舰芯片骁龙8的智能手机。芯片骁龙8与高通骁龙888对比性能也都有大幅度提升。那摩托罗拉EdgeS30,比红米和Realme还狠,骁龙888Plus来到了1799规格参数摩托罗拉edgeS30,采用高通骁龙888Plus处理器,搭配TurboLPDDR5内存和TurboUFS3。1闪存,6。8英寸FHDLCD直屏,居中单挖孔设计,支持全局D有人用摩托罗拉edgespro吗,看评论问题很大啊?12256的,之前也是安卓手机,旧手机资料导入新手机超过5g竟然要钱,真的被恶心到了,相对之前手机很多实用功能缺失,打字屏幕还经常失灵,手机电池续航还不如换掉的旧手机,从用了这段时JavaScript与CSS属性对照表JavaScript与CSS属性对照表JavaScript与CSS属性对照表是js初学者必备的基础知识,下表中列出了两种语法,可用于速查和参考学习,希望对有学习兴趣的朋友有所帮助!RedmiK40游戏增强版推送MIUI12。5增强版IT之家12月14日消息,RedmiK40游戏增强版已经推送MIUI12。5增强版,体积为870MB。今年4月27日,Redmi正式发布了RedmiK40游戏增强版机型,是小米旗下Python机器学习(二十一)随机森林算法一随机森林算法简介在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。LeoBreiman和AdeleCutler发展出推论出随机森每小时超万个玩家被黑客攻击360推出ApacheLog4j2漏洞拦截方案12月11日,360安全大脑监测到有黑客疑似利用ApacheLog4j2漏洞(编号CVE202144228)对Minecraft(游戏名称我的世界)Java版发起大规模攻击,最高峰收音机新玩法,带你速度进入SDR无线电奇妙世界SDR无线电的门槛并没有你想象的那么高,无论是技术层面还是经费层面,对于入门小白来说还是非常友好的,尤其对于喜欢玩收音机的朋友来说,入门SDR软件无线电不失为一种好的拓展爱好,因为AdvancedSystemCare系统优化神器!360终结者提到国内的系统优化软件,360旗下的产品首当其冲,市场占有率颇高,部分软件深受用户的喜爱,典型代表就是安全防护软件360安全卫士,长久以来大家对它的评价褒贬不一,有的认为作为全方位担心行业垄断?美监管机构阻止显卡王者收购英国芯片企业法新社近日报道称,反对美国英伟达公司收购英国微处理器专家安谋科技公司的各国监管机构阵线,近期赢得了一个强有力的盟友美国竞争监管机构联邦贸易委员会。该机构与欧盟和英国的同行一样,担心