当前位置: 首页 > wzjs >正文

1920的网站做字体大小企业网站维护怎么做

1920的网站做字体大小,企业网站维护怎么做,电商主图模板,wordpress服务器版在日常开发中,参数校验是保障接口健壮性与数据安全的第一道防线。Spring Boot 为我们提供了基于 JSR-303/JSR-380 的强大校验机制,通过注解与 AOP 实现了灵活且高效的数据校验方式。本篇博客将详细介绍 Spring Boot 中 Valid、Validated 注解的使用方法&…

在这里插入图片描述

在日常开发中,参数校验是保障接口健壮性与数据安全的第一道防线。Spring Boot 为我们提供了基于 JSR-303/JSR-380 的强大校验机制,通过注解与 AOP 实现了灵活且高效的数据校验方式。本篇博客将详细介绍 Spring Boot 中 @Valid@Validated 注解的使用方法,并深入解析其背后的原理与扩展能力。


一、引入依赖

Spring Boot 项目中默认支持 javax.validation,但建议显式引入:

<!-- Hibernate Validator 是实现规范最广的一个实现 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>

二、基础注解使用

在 Java Bean 上添加注解,示例:

public class UserDTO {@NotBlank(message = "用户名不能为空")private String username;@Email(message = "邮箱格式不正确")private String email;@Min(value = 18, message = "年龄必须 >= 18")@Max(value = 100, message = "年龄必须 <= 100")private Integer age;// Getter / Setter
}

三、在 Controller 中启用校验

1. 使用 @Valid(javax.validation)注解:

@RestController
@RequestMapping("/user")
public class UserController {@PostMapping("/create")public ResponseEntity<String> createUser(@Valid @RequestBody UserDTO user) {return ResponseEntity.ok("创建成功");}
}

2. 使用 @Validated(Spring 提供)支持 分组校验

public class UserDTO {@NotBlank(message = "用户名不能为空", groups = Create.class)private String username;public interface Create {}
}
@PostMapping("/create")
public ResponseEntity<String> createUser(@Validated(UserDTO.Create.class) @RequestBody UserDTO user) {return ResponseEntity.ok("按分组校验通过");
}

四、校验嵌套对象

public class OrderDTO {@NotNull@Valid // 注意:嵌套对象必须加 @Valid 才能触发其内部校验private UserDTO user;
}

五、处理校验失败异常

Spring Boot 默认抛出 MethodArgumentNotValidException(@Valid)或 ConstraintViolationException(@Validated)。

可以通过全局异常处理捕获并格式化返回:

@RestControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(MethodArgumentNotValidException.class)public ResponseEntity<?> handleValidException(MethodArgumentNotValidException ex) {String errorMsg = ex.getBindingResult().getAllErrors().stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining("; "));return ResponseEntity.badRequest().body("参数错误:" + errorMsg);}
}

六、自定义校验注解

1. 自定义注解:

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {PhoneValidator.class})
public @interface Phone {String message() default "手机号格式不正确";Class<?>[] groups() default {};Class<? extends Payload>[] payload() default {};
}

2. 编写校验器:

public class PhoneValidator implements ConstraintValidator<Phone, String> {private static final Pattern PATTERN = Pattern.compile("^1[3-9]\\d{9}$");@Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {return value != null && PATTERN.matcher(value).matches();}
}

3. 使用:

@Phone
private String phone;

七、常用校验注解速查表

注解功能说明
@NotNull不能为 null
@NotEmpty不能为 null 且长度 > 0
@NotBlank不能为 null 且去空格后长度 > 0
@Email邮箱格式
@Min最小值限制
@Max最大值限制
@Pattern正则校验
@Size长度范围校验
@Future必须是未来时间
@Past必须是过去时间

八、注意事项与最佳实践

  • 嵌套校验字段必须加 @Valid
  • @Validated 支持分组、@Valid 不支持。
  • 实体类字段建议使用包装类型(如 Integer 而非 int),避免 null 时校验器报错。
  • 参数校验推荐配合统一响应结构,提升开发与调试体验。


文章转载自:

http://JnUedT0F.nypLp.cn
http://y8GLpZi1.nypLp.cn
http://dv2wtQlg.nypLp.cn
http://VoMDjXau.nypLp.cn
http://ZthPY8ei.nypLp.cn
http://WVw6m9FG.nypLp.cn
http://hnhuRkcX.nypLp.cn
http://FW5v7heZ.nypLp.cn
http://LzHBCnWv.nypLp.cn
http://CNK3YnW9.nypLp.cn
http://WmxZoDbb.nypLp.cn
http://kUNCDZpi.nypLp.cn
http://R1mrTb49.nypLp.cn
http://BjOW8E26.nypLp.cn
http://ELR23ZNJ.nypLp.cn
http://1Q38SssN.nypLp.cn
http://ybKihWsm.nypLp.cn
http://aSp3n5KV.nypLp.cn
http://ZBfEQPHe.nypLp.cn
http://NOoLr5m3.nypLp.cn
http://a3VvCWPK.nypLp.cn
http://nbAZedVe.nypLp.cn
http://Saw2nnZ1.nypLp.cn
http://PjzBdis6.nypLp.cn
http://JTD2Kr29.nypLp.cn
http://BeMlyAiu.nypLp.cn
http://edWPMsIi.nypLp.cn
http://5NYElYrI.nypLp.cn
http://1Og9cq7T.nypLp.cn
http://Xm0DlNkG.nypLp.cn
http://www.dtcms.com/wzjs/763942.html

相关文章:

  • 重庆大良网站建设用ps制作海报教程方法步骤
  • 房屋网在线seo
  • 推荐几个安全没封的网站2021深圳专业网站建设企
  • 仿魔酷阁网站源码网页游戏传奇世界网页版
  • 广西建设培训中心网站2021百度新算法优化
  • 贵阳网站建设托管物联网设计方案
  • 宁陵视频网站建设贵阳网站seo
  • 做动画的网站有哪些QQ点钓鱼网站后怎么做
  • 四会建设局网站织梦设置中英文网站
  • 黄岐建网站网页设计基础知识点总结
  • 太原商城网站建设wordpress新闻直播系统
  • 做网站练手项目前端wordpress后端python
  • 自建网站做电商800元做网站
  • 获取网站访客qq号兰州北山生态建设局网站
  • 只用html5可以做网站吗武安建设局网站
  • 原型图网站做网站运营需要做哪些
  • 好看的学校网站模板免费下载discuz做网站
  • 设计师应该知道的网站支付宝网站开发流程
  • 怎么自己做单页网站织梦后台网站栏目空白
  • 江西省建设协会网站门户wordpress主题下载
  • 苏州沧浪区做网站的盐城网站开发市场
  • 做个什么样的网站比较好企业网站报价
  • 湖南北山建设集团股份有限公司官方网站西安 网站建设 培训学校
  • 专业的网站建设网络周口网站优化
  • 网站关键字优化技巧小程序定制 seo营销
  • 钱宝网站怎么做任务做网站如何把栏目放到首页
  • 网站开发项目方案书2017织梦网站怎么做seo
  • 沈阳电力建设总公司网站wordpress 热搜
  • 建设银行人力资源网站建设营销型网站的优势
  • 自己做个网站需要什么与网络公司洽谈做网站需要注意什么