В чем разница между ограничениями и аннотациями?

#jakarta-ee #annotations #constraints

#джакарта-ee #аннотации #ограничения

Вопрос:

Я изучал Java EE 6, и меня смущает разница между аннотациями и ограничениями. В чем именно разница между ними?

Ответ №1:

Аннотации, такие как @Deprecated , @WebServlet , @NotNull и так далее, содержат метаданные вместе с классом. До появления аннотаций это обычно делалось с помощью файлов конфигурации XML. Аннотации могут быть определены с помощью отражения Java.

Ограничения — это бизнес-правила, которые должны применяться к классам и / или полям (свойствам) класса. Например, если бизнес-правило предписывает, что имя пользователя никогда не может быть нулевым, тогда вы хотели бы поместить @NotNull аннотацию для определения ограничения.

 public class User {

    @NotNull
    private String name;

    // ...
}
  

Я вижу в истории ваших вопросов, что вы знакомы с JSF, веб-платформой MVC, поставляемой Java EE. JSF может использовать это для проверки пользовательского ввода.

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

Когда пользователь оставляет поле ввода пустым, отображается сообщение, информирующее пользователя о том, что значение может быть не равным null (точное сообщение само по себе настраивается).

Смотрите также: