ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java-JSR-303注释字段与Getter

2019-10-25 13:04:02  阅读:195  来源: 互联网

标签:annotations bean-validation java


使用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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有