Jakarta ee 约束和注释之间有什么区别?

Jakarta ee 约束和注释之间有什么区别?,jakarta-ee,annotations,constraints,Jakarta Ee,Annotations,Constraints,我一直在学习JavaEE6,我对注释和约束之间的区别感到困惑。它们之间的具体区别是什么?例如@Deprecated,@WebServlet,@NotNull,等等,类携带元数据。在注释出现之前,这通常由XML配置文件完成。可以借助Java反射来确定注释 要应用于类和/或类的字段(属性)的业务规则。例如,如果业务规则要求用户名永远不能为null,那么您希望使用@NotNull注释来定义约束 public class User { @NotNull private String n

我一直在学习JavaEE6,我对注释和约束之间的区别感到困惑。它们之间的具体区别是什么?

例如
@Deprecated
@WebServlet
@NotNull
,等等,类携带元数据。在注释出现之前,这通常由XML配置文件完成。可以借助Java反射来确定注释

要应用于类和/或类的字段(属性)的业务规则。例如,如果业务规则要求用户名永远不能为null,那么您希望使用
@NotNull
注释来定义约束

public class User {

    @NotNull
    private String name;

    // ...
}
我在您的提问历史中看到,您熟悉JSF,即JavaEE提供的WebMVC框架。JSF可以利用它来验证用户输入

<h:inputText id="username" value="#{user.name}" />
<h:message for="username" />

当用户将输入字段留空时,将显示一条消息,通知用户该值可能不为空(确切的消息本身是可自定义的)

另见:
    • @Deprecated
      @WebServlet
      @NotNull
      ,等等,这些类都携带元数据。在注释出现之前,这通常由XML配置文件完成。可以借助Java反射来确定注释

      要应用于类和/或类的字段(属性)的业务规则。例如,如果业务规则要求用户名永远不能为null,那么您希望使用
      @NotNull
      注释来定义约束

      public class User {
      
          @NotNull
          private String name;
      
          // ...
      }
      
      我在您的提问历史中看到,您熟悉JSF,即JavaEE提供的WebMVC框架。JSF可以利用它来验证用户输入

      <h:inputText id="username" value="#{user.name}" />
      <h:message for="username" />
      
      
      
      当用户将输入字段留空时,将显示一条消息,通知用户该值可能不为空(确切的消息本身是可自定义的)

      另见: