无法在这个位置找到: head2.htm
当前位置: 建站首页 > 新闻动态 > 行业新闻 >

spring boot validation主要参数校检案例剖析

时间:2021-04-02 03:52来源:未知 作者:jianzhan 点击:
文中案例叙述了spring boot validation主要参数校检。共享给大伙儿供大伙儿参照,实际以下:针对一切一个运用来讲在顾客端做的数据信息合理性认证也不是安全性合理的,这时候候就需要

文中案例叙述了spring boot validation主要参数校检。共享给大伙儿供大伙儿参照,实际以下:

针对一切一个运用来讲在顾客端做的数据信息合理性认证也不是安全性合理的,这时候候就需要求大家在开发设计的情况下在服务端也多数据的合理性开展认证。 Spring Boot本身多数据在服务端的校检有一个较为好的适用,它能将大家递交到服务端的数据信息依照大家事前的承诺开展数据信息合理性认证。

1 pom依靠

 dependency 
 .springframework.boot /groupId 
 artifactId spring-boot-starter-validation /artifactId 
 /dependency 

2 校检应用案例

配备要认证的恳求实体线
public class GlobalExceptionHandler { private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class); @SuppressWarnings("rawtypes") @ExceptionHandler(value = Exception.class) public ResponseEntity handle(Exception e) { if (e instanceof MethodArgumentNotValidException) { BindingResult bindingResult = ((MethodArgumentNotValidException) e).getBindingResult(); if (bindingResult.hasErrors() bindingResult.hasFieldErrors()) { FieldError fieldError = bindingResult.getFieldError(); BodyValidStatus bodyValidStatus = new BodyValidStatus.Builder().code("0009") .message(fieldError.getDefaultMessage()) .field(fieldError.getField()).build(); LOGGER.warn(bodyValidStatus.getMessage() + e); return new ResponseEntity (bodyValidStatus, HttpStatus.OK); } else { bodyStatus = DataUtil.bodyStatus("0009"); } else { bodyStatus = DataUtil.bodyStatus(Constants.ERROR_CODE); LOGGER.error(bodyStatus.getMessage() + e); return new ResponseEntity (bodyStatus, HttpStatus.OK); public class BodyValidStatus { // 不正确编码 private String code; // 不正确编码表述 private String message; // 不正确字段名 private String field; public BodyValidStatus() { public BodyValidStatus(String code, String message, String field) { this.code = code; this.message = message; this.field = field; private BodyValidStatus(Builder builder) { setCode(builder.code); setMessage(builder.message); setField(builder.field); public String getCode() { return code; public void setCode(String code) { this.code = code; public String getMessage() { return message; public void setMessage(String message) { this.message = message; public String getField() { return field; public void setField(String field) { this.field = field; @Override public String toString() { return ToStringBuilder.reflectionToString(this); public static final class Builder { private String code; private String message; private String field; public Builder() { public Builder code(String val) { code = val; return this; public Builder message(String val) { message = val; return this; public Builder field(String val) { field = val; return this; public BodyValidStatus build() { return new BodyValidStatus(this);

3 认证注释详细说明


认证注释的原素值不以空(不以null、除去首尾空格符后长短不以0),,@NotBlank只运用于标识符串且在较为时候除去标识符串的首尾空格符


BigDecimal,BigInteger, byte,short, int, long,等一切Number或CharSequence(储存的是数据)子种类


特定递归认证关系的目标;如客户目标中有一个详细地址目标特性,假如想在认证客户目标时一起认证详细地址目标得话,


.xxx.xxx.constraint.impl.MoneyValidator; @Target({ElementType.FIELD, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Constraint(validatedBy=MoneyValidator.class) public @interface Money { String message() default"并不是额度方式"; Class ? [] groups() default {}; Class ? extends Payload [] payload() default {}; import java.util.regex.Pattern; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; .xxx.xxx.constraint.Money; public class MoneyValidator implements ConstraintValidator Money, Double { private String moneyReg = "^\\d+(\\.\\d{1,2})?$";//表明额度的正则表达式表述式 private Pattern moneyPattern = pile(moneyReg); public void initialize(Money money) { // TODO Auto-generated method stub public boolean isValid(Double value, ConstraintValidatorContext arg1) { // TODO Auto-generated method stub if (value == null) return true; return moneyPattern.matcher(value.toString()).matches();

大量有关java有关內容很感兴趣的阅读者能查看本网站专题讲座:《Spring架构新手入门与升阶实例教程》、《Java数据信息构造与优化算法实例教程》、《Java实际操作DOM连接点方法小结》、《Java文档与文件目录实际操作方法归纳》和《Java缓存文件实际操作方法归纳》

期待文中上述对大伙儿java编程设计有一定的协助。

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: ajaxfeedback.htm
栏目列表
推荐内容


扫描二维码分享到微信