@azerphoenix

На каком уровне должна быть валидация полей Spring Boot?

Доброго времени суток!
Изучаю фреймворк Spring и пишу небольшое приложение.
Вопрос - На каком уровне должна быть валидация полей Spring Boot?

Т.е. достустим, есть форма регистрации и в качестве имени пользователя используется email.
Соответственно, это поле должно быть уникальным и не пустым

1) Можно добавить required на уровне html и тем самым это поле не будет пустым
2) Можно на уровне js кода это все проверять (честно, не являюсь сторонником этого)
3) Можно на уровне JPA проверять при помощи аннотаций
@Column(nullable = false, unique = true)
private String userEmail;

4) Можно на уровне ControllerAdvice ловить исключения
5) Можно на уровне Validator validate() проводить валидацию...
6)
@Override
    public void validate(Object target, Errors errors) {
        User user = (User) target;

        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "userEmail", "Error");
        if (user.getUserEmail()!=null) {
            errors.rejectValue("userEmail", "Error");
        }
    }

7) Можно на уровне UserServiceImpl проверить и вернуть false
if(userFromDbEmail != null) { 
      return false;
    }

Вопрос - что предпочтительнее?
  • Вопрос задан
  • 12 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы