Spring AOP 切面实现参数校验
思路与原理
整个实现需要两个注解和一个切面,分别是:
- @Verifys : 用于标记需要进行参数校验的方法。
- @Verify : 用于标记具体属性,包括是否需要校验和校验的规则。
- 切面 : 利用反射实现校验的逻辑。
首先根据注解获取需要进行检验的方法,之后利用java反射的机制,获取每个被@Verify注解标记的字段,最后进行校验。代码量很少,思路也比较简单。
代码
/**
* @author
* @version 1.0
* @date 2020/4/16
**/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Verifys {
}
/**
* @author
* @version 1.0
* @date 2020/4/16
**/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Verify {
boolean required() default true;
String regular() default "";
}
/**
* @author
* @version 1.0
* @date 2020/4/16
**/
@Component
@Aspect
@Slf4j
public class FieldVerify {
@Before(value