SpringMVC bean validator 自定义注解
2016-09-27 13:51
309 查看
摘要: SpringMVC bean validator 自定义注解
有时候现有的验证注解满足不了部分业务需求,所以就有了扩展自定义注解。
自定义注解需要自定义validator,所以注解里变量也不是强制需要,可以就一个message也可以
有时候现有的验证注解满足不了部分业务需求,所以就有了扩展自定义注解。
1.添加注解类
import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target; import static java.lang.annotation.ElementType.*; import static java.lang.annotation.ElementType.PARAMETER; import static java.lang.annotation.RetentionPolicy.RUNTIME; /** * User: zhoujingjie * Date: 14-10-31 * Time: 下午6:00 */ @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER }) @Retention(RUNTIME) @Documented @Constraint(validatedBy = { PhoneNoValidator.class}) public @interface PhoneNo { //默认错误消息 String message() default "手机号码错误"; //分组 Class<?>[] groups() default { }; //负载 Class<? extends Payload>[] payload() default { }; //指定多个时使用 @Target({ FIELD, METHOD, PARAMETER, ANNOTATION_TYPE }) @Retention(RUNTIME) @Documented @interface List { PhoneNo[] value(); } }
自定义注解需要自定义validator,所以注解里变量也不是强制需要,可以就一个message也可以
2.添加PhoneNoValidator
import org.apache.commons.lang.StringUtils; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; /** * 手机号码验证 * User: zhoujingjie * Date: 14-11-1 * Time: 上午10:45 */ public class PhoneNoValidator implements ConstraintValidator<PhoneNo,String> { @Override public void initialize(PhoneNo constraintAnnotation) { } @Override public boolean isValid(String value, ConstraintValidatorContext context) { if(StringUtils.isEmpty(value)) return true; if(value.matches("((\\+86)|(86))?1[3|4|5|8]\\d{9}")){ return true; } return false; } }
3.最后
完成,一个简单的自定义注解就完工了。使用方式与其他注解一模一样相关文章推荐
- 自定义Spring注解bean的命名策略
- [SpringMVC+redis]自定义aop注解实现控制器访问次数限制
- Spring+SpringMVC+Mybatis 利用AOP自定义注解实现可配置日志快照记录
- websocket请求用自定义注解@WSRequestMapping访问,类似springmvc @RequestMapping访问。
- Spring+SpringMVC+Mybatis 利用AOP自定义注解实现可配置日志快照记录
- Spring 关于bean的获取以及自定义注解的起始注入和获取
- 自定义Spring注解bean的命名策略
- Spring+SpringMVC+Mybatis 利用AOP自定义注解实现可配置日
- J2EE项目使用自定义注解实现基于SpringMVC + Mybatis + Mysql的读写分离
- spring自定义bean(包含引用bean)--自定义注解解析
- 从0开始写一个基于注解的轻量级分布式RPC框架(4)自定义Spring的IOC,自定义属性注入bean的过程
- Spring+SpringMVC+Mybatis 利用AOP自定义注解实现可配置日志快照记录
- Spring 全注解配置 bean 和 调用 (6) 自定义注解 自动装配歧义性消除
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-004-消除BEAN自动装配的歧义@QUALIFIER及自定义注解
- spring(3) mvc 注解验证springmodules common validator (注解验证)
- 自定义Spring注解bean的命名策略
- spring:自定义限定符注解@interface, 首选bean
- 第一个SPRING MVC BeanNameUrlHandlerMapping
- Spring事务--非注解--自动代理对象[BeanNameAutoProxy]
- SpringMVC Spring3 MVC 注解,注释 用@RequestMapping处理请求,多个请求,提交,.do,带参数,url重写