SpringBoot注解校验参数

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.Date;

@Data
@ApiModel(value = "用户")
public class Member implements Serializable {
    @NotNull(message = "名称不能为空")    //被注释的元素必须不为 null
    @NotBlank(message = "名称不能为空")	//验证字符串非null,且长度必须大于0
    private String name;

    @Email(message = "邮箱格式错误")  //被注释的元素必须是电子邮箱地址
    private String email;

    //被注释的元素必须符合指定的正则表达式
    @Pattern(regexp = "^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$" , message = "手机号格式有误")
    @Max(value = 11, message = "手机号只能为{max}位") //被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @Min(value = 11, message = "手机号只能为{min}位") //被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    private Long phone;

    @Null //被注释的元素必须为 null
    private String card;

    @AssertTrue    //被注释的元素必须为 true
    private Boolean putaway;

    @AssertFalse   
### Spring Boot 中使用注解进行参数校验 在Spring Boot应用程序中,为了确保接收到的请求参数符合预期格式和规则,可以利用内置的校验机制。这种做法有助于提升系统的安全性和稳定性[^1]。 #### 添加依赖项 要启用Spring Boot中的参数校验功能,需先向`pom.xml`文件添加必要的Maven依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> ``` 此依赖集成了Hibernate Validator——JSR 380 (Bean Validation 2.0) 的一种实现方案,它扩展了基本的标准并增加了更多实用的约束注解,如 `@Email`, `@Length` 等[^2]。 #### 创建数据传输对象(DTO) 定义一个用于接收HTTP请求的数据模型类,在字段上应用合适的验证注解: ```java import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; public class UserDTO { @NotBlank(message = "用户名不能为空") private String username; @Size(min=6, max=30, message="密码长度应在6到30之间") private String password; @Email(message="请输入有效的电子邮件地址") private String email; // Getters and Setters... } ``` 上述代码片段展示了如何通过简单的注解来规定属性的有效范围或模式匹配条件。 #### 控制器层集成校验逻辑 当创建RESTful API端点时,可以在方法签名处声明`@Valid` 或者更灵活的 `@Validated` 注解以触发自动化的输入检查过程;如果检测到任何违反既定规则的情况,则会立即终止处理链并向客户端反馈详细的错误描述信息。 ```java @RestController @RequestMapping("/api/users") public class UserController { @PostMapping("") public ResponseEntity<String> createUser(@RequestBody @Valid UserDTO user){ // 正常情况下继续执行业务操作... return new ResponseEntity<>("User created successfully", HttpStatus.CREATED); } } ``` 一旦发生校验失败的情形,默认行为是由框架内部抛出`MethodArgumentNotValidException`异常,并最终由全局异常处理器负责捕捉此类事件以便统一响应格式化输出给前端使用者查看[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值