Java-JSR-303注释字段与Getter
作者:互联网
使用JSR-303批注执行bean验证时,批注字段与getter之间有什么区别?
是否推荐一种方法而不是另一种方法?
现场注释
public class Person {
@NotBlank
private String firstName;
public String getFirstName() {
return firstName;
}
public String setFirstName(String firstName) {
this.firstName = firstName;
}
}
吸气剂注释
public class Person {
private String firstName;
@NotBlank
public String getFirstName() {
return firstName;
}
public String setFirstName(String firstName) {
this.firstName = firstName;
}
}
解决方法:
约束声明主要通过注释放置在类或接口上.约束注释(see Section 2.1, “Constraint annotation”)可以应用于类型,任何类型的字段或任何与JavaBeans兼容的属性.
在类上定义约束时,正在验证的类实例将传递到ConstraintValidator.在字段上定义约束时,该字段的值将传递到ConstraintValidator.在getter上定义约束时,getter调用的结果将传递到ConstraintValidator.
将约束放在(通常是公共)getter而不是(通常是私有)字段上的最大好处是,约束以这种方式成为类型的公共API的一部分.它们甚至将被添加到生成的JavaDoc中.类型的用户无需查看其内部实现即可知道对它应用哪些约束.
注释获取方法的另一个优点是,可以将约束放在基类或接口上的方法上,也可以应用于任何子类型/实现.
标签:annotations,bean-validation,java 来源: https://codeday.me/bug/20191025/1928650.html