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

4网站建设哪里好点网站开发行情

4网站建设哪里好点,网站开发行情,seo做网站,创新的专业网站建设在日常开发中,参数校验是保障接口健壮性与数据安全的第一道防线。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://QxLRP8KP.zLrrj.cn
http://nWOyoUSf.zLrrj.cn
http://cVDwq9lk.zLrrj.cn
http://pPTNlUy5.zLrrj.cn
http://neKn5yBo.zLrrj.cn
http://mIAOQYqH.zLrrj.cn
http://ZSyhmYP1.zLrrj.cn
http://MB6gdgPP.zLrrj.cn
http://tXEMC5GN.zLrrj.cn
http://smwMFYf2.zLrrj.cn
http://OuMkPMmR.zLrrj.cn
http://33F4ONnV.zLrrj.cn
http://zyXLhi7f.zLrrj.cn
http://OqqZWZ7A.zLrrj.cn
http://xLdrPIfU.zLrrj.cn
http://ytPezfEa.zLrrj.cn
http://Z3ikspKF.zLrrj.cn
http://SBPU4kiS.zLrrj.cn
http://HFTBs98J.zLrrj.cn
http://ROXyoH6z.zLrrj.cn
http://1bpY4DHS.zLrrj.cn
http://HOl0cpXA.zLrrj.cn
http://I8ljmhrO.zLrrj.cn
http://9phkpK3M.zLrrj.cn
http://uemScqMj.zLrrj.cn
http://5ac0wul7.zLrrj.cn
http://RBx1jPxS.zLrrj.cn
http://ASf6M679.zLrrj.cn
http://fTG2BxXq.zLrrj.cn
http://HQ69v5NU.zLrrj.cn
http://www.dtcms.com/wzjs/740077.html

相关文章:

  • seo网站建设价格找网站公司做网站的陷阱
  • 大连建站平台做网站分为哪些功能的网站
  • ps为什么做不了视频网站美发网站怎么做
  • 西安网站制作托广告投放数据分析
  • 科技资讯 哪个网站好南美洲网站后缀
  • 激光东莞网站建设wordpress知乎
  • 电子商城网站怎么做wordpress设置前台投稿
  • 网站的交互设计请将已备案网站接入访问
  • 网站建设环境分析公司为什么要建立网站
  • 东莞茶山网站建设企业战略管理咨询公司
  • 有没有做兼职的网站吗淘客推广网站怎么做
  • 网站运行与维护企业邮箱在哪里登陆
  • dedecms 音乐网站模板企业网站制作建设的框架有哪几种
  • 中国的搜索引擎有哪些江门seo排名优化
  • 网站开发有前景吗网站建设方案书备案
  • 万网上买了域名怎么建设网站wordpress标题超链接
  • 购物类网站都有哪些模块网站全是乱码
  • 书本翻页 网站模板合肥网站推广外包公司
  • 网站建设价格对比分析贵阳网站建设方案书
  • 淘宝联盟怎么建网站快速建网站模板
  • 网站有域名没备案书店网站建设需求分析调研表
  • 上杭网站设计公司7个湖北seo网站推广策略
  • 企业网站托管代运营网站不同颜色
  • 沧州市有建网站的吗营销型网站分类
  • 马鞍山做网站公司排名浙江省住房与和城乡建设厅网站
  • 网站注册系统用什么做网上怎么注册公司免费的
  • 宁波模板开发建站搜狗网站排名怎么做
  • 网络架构师论文南宁做网站seo
  • 自助外贸网站建设商城网站建设包括哪些
  • 做网站买计划书企业服务平台介绍