#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 (точное сообщение само по себе настраивается).