首先,我有这段代码:
@Service
public class ClientService {
public void addClient(@Valid Client client) { // Client class has some javax.validation.constraints on his attributes
Set<ConstraintViolation<Long>> violations = this.validator.validate(id);
ValidationHandler.handleViolations(violations);
...
}
public void deleteClient(@Digits(fraction = 0, integer = 5) Long id) throws ValidationException {
Set<ConstraintViolation<Long>> violations = this.validator.validate(id);
ValidationHandler.handleViolations(violations);
...
}
}
public class Client {
@Digits(fraction=0, integer=5, message="Invalid ID")
private Long id;
@Size(min = 2, max = 10, message = "Client's name length should be between {min} and {max}")
private String name;
private ClientType type;
private Gender gender;
// Getters and setters
}
所以,我的问题是这个。当我调用deleteClient()然后验证器验证对象参数(id)时,我总是得到非违规,尽管我传递的是无效值(例如343435454)。我正在读这个,这是因为我没有为这种方法实现任何Spring AOP验证器拦截器,这是对的吗?如果是,那么我不明白为什么当我用无效数据调用addClient()时验证器正确验证。任何人都可以解释我为什么会这样吗?