在Java中,可以使用第三方库或自己编写工具类来对请求参数进行校验的封装。
1. 使用第三方库
常用的第三方库有:
- Hibernate Validator:基于JSR 380规范实现的校验框架,支持注解、API和XML配置等多种方式。
- Apache Commons Validator:提供了一些常用的校验方法,如邮箱、手机号、身份证号等。
- Spring Validation:Spring框架提供的校验框架,支持注解和API两种方式。
这里以Hibernate Validator为例,示例代码如下:
```java
public class User {
@NotNull(message = "用户名不能为空")
private String username;
@Size(min = 6, max = 20, message = "密码长度必须在6到20之间")
private String password;
@Email(message = "邮箱格式不正确")
private String email;
}
public class UserController {
@PostMapping("/users")
public ResponseEntity> createUser(@Valid @RequestBody User user) {
// 处理创建用户的逻辑
return ResponseEntity.ok().build();
}
}
```
在上面的示例中,`User` 类中使用了Hibernate Validator提供的注解来定义属性的校验规则。在 `UserController` 中,使用 `@Valid` 注解来启用参数校验,并将请求体中的JSON字符串转换成 `User` 对象。如果校验失败,会抛出 `MethodArgumentNotValidException` 异常,可以通过全局异常处理器来统一处理。
2. 自己编写工具类
如果不想使用第三方库,也可以自己编写工具类来实现参数校验的封装。示例代码如下:
```java
public class ParamValidator {
public static void validate(Object obj) throws IllegalArgumentException, IllegalAccessException {
for (Field field : obj.getClass().getDeclaredFields()) {
field.setAccessible(true);
Object value = field.get(obj);
if (value == null) {
throw new IllegalArgumentException(field.getName() + "不能为空");
}