SpringBoot初学习——参数验证、@Valid注解

本文介绍了SpringBoot中如何利用注解进行表单验证,通过实体类和Controller类的示例展示了@Valid注解的使用,并提到了使用Postman进行测试以及其他的验证注解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot 的@Valid注解拥有强大的表单验证功能,能够满足基本的需要。下面是一个使用@Valid注解的实例,要求姓名和年龄不能为空,年龄要大于18岁。

实体类

package com.vi.blog.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

@Entity
public class People {
   
   
    @Id
    @GeneratedValue
    private Integer id;

    @NotNull(message = "年龄不能为空")
    @Min(value = 18, message = "未成年不能入内")
    private Integer age;

    @NotNull(message = "姓名不能为空")
    private
### 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]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vi_NSN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值