java.lang.Object
org.miaixz.bus.starter.validate.AspectjValidateProxy
AOP验证代理切面类,用于对控制器方法参数进行自动验证。
该类使用Spring AOP技术,在控制器方法执行前对带有验证注解的参数进行验证, 如果验证失败则抛出异常,阻止方法继续执行。
该切面匹配以下类型的方法:
- 带有Spring Web注解的方法:@RequestMapping、@GetMapping、@PostMapping等
- 带有@CrossOrigin注解的方法
- 带有@Valid注解参数的方法
使用示例:
@RestController
@RequestMapping("/user")
public class UserController {
@PostMapping("/register")
public UserDTO register(@Valid UserRegisterDTO userDTO) {
// 如果userDTO验证失败,方法不会执行,直接抛出异常
return userService.register(userDTO);
}
}
在上述示例中,当调用/user/register接口时,AspectjValidateProxy会自动对 userDTO参数进行验证,如果验证失败则抛出异常,方法不会执行。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
AspectjValidateProxy
public AspectjValidateProxy()
-
-
Method Details
-
match
public void match()定义切点,匹配所有带有Spring Web注解的方法或带有@Valid注解参数的方法。切点表达式匹配以下注解或方法:
- @RequestMapping
- @PutMapping
- @PostMapping
- @PatchMapping
- @ModelAttribute
- @GetMapping
- @DeleteMapping
- @CrossOrigin
- 带有@Valid注解参数的方法
-
around
环绕通知,在匹配的方法执行前后进行验证处理。该方法在目标方法执行前,调用
AutoValidateAdvice对方法参数进行验证, 验证通过后继续执行目标方法,验证失败则抛出异常。- Parameters:
point- 切点,包含目标方法的信息- Returns:
- 目标方法的执行结果
- Throws:
Throwable- 如果验证失败或目标方法执行抛出异常
-