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

淘客网站开发培训人寿保险网站

淘客网站开发培训,人寿保险网站,导航网站开发用户文档,餐饮行业做网站的好处在 Spring Boot 中实现参数自动校验主要依靠 Java Bean Validation API&#xff08;JSR 380&#xff09;和 Spring 的集成支持。以下是详细实现步骤&#xff1a; 1. 添加依赖 在 pom.xml 中添加验证依赖&#xff1a; <dependency><groupId>org.springframework.b…

在 Spring Boot 中实现参数自动校验主要依靠 Java Bean Validation API(JSR 380)和 Spring 的集成支持。以下是详细实现步骤:


1. 添加依赖

pom.xml 中添加验证依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>

2. 在实体类/DTO中添加校验注解

使用注解标记需要校验的字段:

public class UserDTO {@NotBlank(message = "用户名不能为空")private String username;@Email(message = "邮箱格式不正确")private String email;@Min(value = 18, message = "年龄必须大于18岁")private int age;@Pattern(regexp = "1[3-9]\\d{9}", message = "手机号格式不正确")private String phone;// Getter/Setter省略
}

常用校验注解

  • @NotNull:非 null
  • @NotBlank:非空(字符串)
  • @NotEmpty:非空集合/数组
  • @Min/@Max:数值范围
  • @Size:长度范围
  • @Email:邮箱格式
  • @Pattern:正则表达式

3. 在Controller中使用校验

在接收参数的请求方法中添加 @Valid@Validated

@PostMapping("/create")
public ResponseEntity<?> createUser(@Valid @RequestBody UserDTO userDTO) {// 校验通过后执行业务逻辑return ResponseEntity.ok("用户创建成功");
}

注意@Valid 是标准 JSR 注解,@Validated 是 Spring 的增强版(支持分组校验)。


4. 处理校验异常

添加全局异常处理器捕获校验失败异常:

@RestControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(MethodArgumentNotValidException.class)public ResponseEntity<Map<String, String>> handleValidationException(MethodArgumentNotValidException ex) {Map<String, String> errors = new HashMap<>();ex.getBindingResult().getFieldErrors().forEach(error -> {errors.put(error.getField(), error.getDefaultMessage());});return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errors);}
}

响应示例

{"username": "用户名不能为空","email": "邮箱格式不正确"
}

5. 进阶用法

分组校验(不同场景不同规则)
  1. 定义分组接口:

    public interface CreateGroup {}
    public interface UpdateGroup {}
    
  2. 在 DTO 中指定分组:

    public class UserDTO {@NotNull(groups = UpdateGroup.class, message = "ID不能为空")private Long id;@NotBlank(groups = {CreateGroup.class, UpdateGroup.class})private String name;
    }
    
  3. Controller 指定分组:

    @PostMapping("/update")
    public void updateUser(@Validated(UpdateGroup.class) @RequestBody UserDTO dto) {// ...
    }
    
自定义校验注解
  1. 创建自定义注解:

    @Target({FIELD})
    @Retention(RUNTIME)
    @Constraint(validatedBy = PhoneValidator.class)
    public @interface ValidPhone {String message() default "手机号格式错误";Class<?>[] groups() default {};Class<? extends Payload>[] payload() default {};
    }
    
  2. 实现校验逻辑:

    public class PhoneValidator implements ConstraintValidator<ValidPhone, String> {@Overridepublic boolean isValid(String phone, ConstraintValidatorContext context) {return phone != null && phone.matches("1[3-9]\\d{9}");}
    }
    

6. 测试校验

使用 Postman 或 curl 发送无效请求:

curl -X POST http://localhost:8080/create \
-H "Content-Type: application/json" \
-d '{"username":"", "email":"invalid-email"}'

将返回:

{"username": "用户名不能为空","email": "邮箱格式不正确"
}

总结流程:

graph TDA[添加依赖] --> B[DTO添加校验注解]B --> C[Controller添加@Valid]C --> D[全局异常处理器]D --> E[返回错误信息]

通过以上步骤,Spring Boot 会自动完成参数校验,无需手动编写校验逻辑,大幅提升开发效率。

http://www.dtcms.com/wzjs/581374.html

相关文章:

  • 企业建站有哪些步骤广州百度推广优化排名
  • 新网网站空间好看免费的ppt模板下载
  • 免费一键生成app工具口碑好的常州网站优化
  • 未经网安备案开设网站的轮胎 东莞网站建设
  • 网站建设及使用南京开发门户网站的公司
  • 长沙建设品牌网站商丘网警
  • 长安网站优化公司专业做家具的网站
  • 杭州网站建设网络网站开发体会范文
  • 云浮源峰网站建设工作室地址wordpress后台首页增加论坛帖子
  • 刷粉网站推广o2o与网站建设
  • 合肥定制网站建设公司什么企业做网站
  • 网站建设网站制作lnmp怎么做网站
  • 西安网站建设品牌公司推荐手工制作书签
  • 上海网站建设 推荐站霸网络岳阳网站开发培训
  • 如何给自己做的网站加上域名腾讯轻量应用服务器建站模板
  • flask做的网站完整网站开发视频
  • 电脑做微信推送的网站进入网站前如何做环境检测
  • 如何推广自己的外贸网站朝阳工商登记大厅
  • 百度网站建设多少钱最火的推广软件
  • 高端html5网站设计工作室织梦模板 dedecms5.7滨湖网站建设
  • 接私活做网站昆明岭蓝网站建设公司
  • wordpress建站怎么样个人做影视网站版权问题
  • 自己有网站想制作个程序WordPress手机文章缩略图
  • 网站广告条怎么做长沙黄花机场公众号
  • 企业展厅设计费用多少网站优化北京seo
  • 网站开发的一次性收益网站后台怎么进入wordpress
  • 电子烟网站建设中国移动国际精品网
  • 网站建设过程中准备的工作货源网站 源码
  • 网站建设招标书技术介绍企业所得税税前扣除项目有哪些
  • 排名网站却搜不到医药企业网站建设要哪些备案