springboot 自定义注解检验方法参数
时间: 2023-12-06 18:38:11 浏览: 131
springboot ConditionalOnMissingBean注解的作用.docx
在Spring Boot中,我们可以使用自定义注解来校验方法参数。具体步骤如下:
1. 创建一个注解类,例如上述提到的DomainOwner类,用于接收参数并进行校验。
2. 创建一个切面类,用于在方法执行前进行参数校验。可以使用@Aspect注解和@Before注解来实现。
3. 在需要进行参数校验的Controller方法上添加自定义注解,例如上述提到的@PostMapping("/post")方法上添加@Validated注解。
下面是一个示例代码:
1. 自定义注解类:
```java
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DomainOwner {
String domainIdPattern() default "";
String domainPattern() default "";
}
```
2. 切面类:
```java
@Aspect
@Component
public class DomainOwnerAspect {
@Before("@annotation(domainOwner)")
public void checkDomainOwner(JoinPoint joinPoint, DomainOwner domainOwner) {
Object[] args = joinPoint.getArgs();
// 根据注解中的参数进行校验
// ...
}
}
```
3. Controller方法:
```java
@RestController
public class UserController {
@PostMapping("/post")
public DataResult post(@Validated @RequestBody User person) {
return DataResult.success();
}
@GetMapping("/get")
@DomainOwner(domainIdPattern = "\\d+", domainPattern = "[a-zA-Z]+")
public DataResult get(String domainId, String domain) {
return DataResult.success();
}
}
```
阅读全文