1、接口注释
      
        @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy 
      
      = {IncrementalValidator.
      
        class
      
      
        })
      
      
        public
      
       @
      
        interface
      
      
         IncrementalInteger {
    String message() 
      
      
        default
      
       "{common.incrementalInteger.Pattern}"
      
        ;
    Class
      
      <?>[] groups() 
      
        default
      
      
         {};
    Class
      
      <? 
      
        extends
      
       Payload>[] payload() 
      
        default
      
      
         {};
    
      
      
        /**
      
      
        
     * 
      
      
        @return
      
      
         value the element must be larger or equal to
     
      
      
        */
      
      
        int
      
      
         min();
    
    
      
      
        /**
      
      
        
     * 
      
      
        @return
      
      
         value the element must be smaller or equal to 
     
      
      
        */
      
      
        int
      
      
         max();
    
      
      
        /**
      
      
        
     * 
      
      
        @return
      
      
         value must be incremental
     
      
      
        */
      
      
        int
      
      
         increment();
    
      
      
        /**
      
      
        
     * Defines several {
      
      
        @link
      
      
         IncrementalInteger} annotations on the same
     * element.
     *
     * 
      
      
        @see
      
      
         IncrementalInteger
     
      
      
        */
      
      
        
    @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
    @Retention(RUNTIME)
    @Documented
    @
      
      
        interface
      
      
         List {
        IncrementalInteger[] value();
    }
}
      
    
  2、Validator类
      
        public
      
      
        class
      
       IncrementalValidator 
      
        implements
      
       ConstraintValidator<IncrementalInteger, Integer>
      
         {
    
      
      
        private
      
      
         IncrementalInteger constraintAnnotation;
    @Override
    
      
      
        public
      
      
        void
      
      
         initialize(IncrementalInteger constraintAnnotation) {
        
      
      
        this
      
      .constraintAnnotation =
      
         constraintAnnotation;
    }
    @Override
    
      
      
        public
      
      
        boolean
      
      
         isValid(Integer value, ConstraintValidatorContext context) {
        
      
      
        int
      
       min =
      
         constraintAnnotation.min();
        
      
      
        int
      
       increment =
      
         constraintAnnotation.increment();
        
      
      
        int
      
       max =
      
         constraintAnnotation.max();
        
      
      
        if
      
       (value <
      
         min) {
            
      
      
        return
      
      
        false
      
      
        ;
        }
        
      
      
        if
      
       (value >
      
         max) {
            
      
      
        return
      
      
        false
      
      
        ;
        }
        
      
      
        if
      
       ((value - min) % increment != 0
      
        ) {
            
      
      
        return
      
      
        false
      
      
        ;
        }
        
      
      
        return
      
      
        true
      
      
        ;
    }
}
      
    
  


 
					 
					