Я изучаю Java EE 6 и не понимаю разницы между аннотациями и ограничениями. В чем именно разница между ними?
В чем разница между ограничениями и аннотациями?
Ответы (1)
Аннотации, такие как @Deprecated
, @WebServlet
, @NotNull
и т. д., содержат < strong>метаданные с классом. До появления аннотаций это обычно делалось с помощью файлов конфигурации XML. Аннотации можно определить с помощью Java Reflection.
Ограничения — это бизнес-правила, которые должны применяться к классам и /или поля (свойства) класса. Например, если бизнес-правило предписывает, что имя пользователя никогда не может быть нулевым, то вы хотели бы поместить аннотацию @NotNull
для определения ограничения.
public class User {
@NotNull
private String name;
// ...
}
Я вижу в вашей истории вопросов, что вы знакомы с JSF, веб-платформой MVC, поставляемой Java EE. JSF может использовать его для проверки ввода пользователя.
<h:inputText id="username" value="#{user.name}" />
<h:message for="username" />
Когда пользователь оставляет поле ввода пустым, отображается сообщение, информирующее пользователя о том, что значение не может быть нулевым (точное сообщение само по себе можно настроить).