我让你用springboot实现方法参数非空校验
时间: 2024-11-05 09:30:36 浏览: 25
在Spring Boot中实现方法参数非空校验通常会用到`@Valid`注解配合`javax.validation.constraints.NotNull`或者自定义的`@NotBlank`注解,这两个都是来自JSR 303/JSR 349 Bean Validation规范。
首先,你需要在你的实体类字段上添加验证注解:
```java
public class User {
@NotNull(message = "username cannot be null")
private String username;
// 省略其他属性...
}
```
然后,在控制器方法中,你可以使用`@Valid`来检查入参的有效性:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.CrudRepository;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Autowired
private UserRepository userRepository;
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody @Valid User user, BindingResult result) {
if (result.hasErrors()) {
return new ResponseEntity<>(result.getAllErrors(), HttpStatus.BAD_REQUEST);
}
// 如果验证通过,保存用户
return userRepository.save(user);
}
}
```
这里,如果`User`实例的`username`字段为空,`BindingResult`将会包含错误信息,并在HTTP响应中返回`400 Bad Request`。
阅读全文