public interface Validator { boolean validate(Object parameter); } public class EmailValidator implements Validator { public boolean validate(Object parameter) { } } public class User { @Validate(validator = EmailValidator.class) private String email; // ... } public void saveUser(User user) { Validator validator = getValidator(); Field[] fields = user.getClass().getDeclaredFields(); for (Field field : fields) { if (field.isAnnotationPresent(Validate.class)) { field.setAccessible(true); Object value = field.get(user); if (!validator.validate(value)) { throw new InvalidParameterException("Invalid parameter: " + field.getName()); } } } } <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> <scope>provided</scope> </dependency> <build> <plugins> <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId> <version>3.3.3</version> <executions> <execution> <id>process</id> <goals> <goal>process</goal> </goals> <configuration> <processors> <processor>org.hibernate.validator.ap.ConstraintProcessor</processor> </processors> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>6.2.0.Final</version> </dependency> </dependencies> </plugin> </plugins> </build>


上一篇:
下一篇:
切换中文