Service层中使用Spring Boot的Validation API手动验证对象
在Spring Boot的Service层中,@Size注解通常用于验证字符串或集合大小。在需要获取@Size注解的大小值时,您可以按照以下步骤操作:
-
在Service层中,可以使用
@Valid
注解和Spring Boot的默认参数校验器来验证输入参数是否符合要求的大小。如果参数大小不符合要求,则会抛出ConstraintViolationException
异常,您可以从该异常中获取详细的验证错误信息。@Service public class UserService { public void createUser(@Valid User user) { // ... } } public class User { @Size(min = 6, max = 20) private String username; @Size(min = 8, max = 16) private String password; // getters and setters }
请注意:在使用@Size注解验证集合大小时,它只能验证集合本身的大小,而不是其中元素的大小。如果您需要验证集合中元素的大小,请使用@Size注解的嵌套属性。
-
在Service层中,可以使用
@Valid
注解和Spring Boot的默认参数校验器来验证输入参数是否符合要求的大小。如果参数大小不符合要求,则会抛出ConstraintViolationException
异常,您可以从该异常中获取详细的验证错误信息。@Service public class UserService { @Autowired private Validator validator; public void createUser(User user) { Set<ConstraintViolation<User>> violations = validator.validate(user); if (!violations.isEmpty()) { throw new ConstraintViolationException(violations); } // ... } } public class User { @Size(min = 6, max = 20) private String username; @Size(min = 8, max = 16) private String password; // getters and setters }
请注意:在使用@Size注解验证集合大小时,它只能验证集合本身的大小,而不是其中元素的大小。如果您需要验证集合中元素的大小,请使用@Size注解的嵌套属性。