предисловие
При разработке интерфейса важна проверка параметров. Правила типа и длины параметров должны быть согласованы с менеджером по продукту или техническим директором на ранней стадии разработки. Если входные параметры не проверены, очень вероятно, что некоторые недопустимые параметры вызовут сбои в работе системы.
В предыдущей статье говорилось о различных способах принятия параметров[Быстро изучите Springboot] 3. Несколько способов принять параметры. Поскольку в настоящее время наиболее часто используются параметры типа json, здесь объясняется только проверка параметров типа json. Другие типы почти такие же.
Создайте новый Param.java
public class Param {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
В настоящее время этот класс имеет только одно свойство имени пользователя.
Используйте аннотацию Validated, чтобы включить проверку параметров.
@PostMapping(value = "/validate/notblank")
public Object validateNotBlank(@RequestBody @Validated Param param) {
return param;
}
NotBlank непустое суждение
Измените Param.java и добавьте аннотацию NotBlank к свойству имени пользователя.
@NotBlank
private String username;
тестовое задание
Через консоль мы видим, что было выброшено исключение MethodArgumentNotValidException.Вышеупомянутый возвращаемый результат фактически возвращается обработчиком исключений по умолчанию Springboot.Чтобы унифицировать формат возврата данных интерфейса, нам также необходимо настроить глобальный перехватчик исключений., о чем будет рассказано в следующей лекции.
Мы также можем установить информацию об исключении через атрибут сообщения аннотации NotBlank:
@NotBlank(message = "username不可为空")
private String username;
Оценка длины строки длины
Тем не менее, что Param.java, мы добавляем аннотацию длины к имени пользователя следующим образом:
@Length(min = 2,max = 3)
@NotBlank(message = "username不可为空")
private String username;
Точно так же мы можем использовать свойство message для установки возвращаемого сообщения об ошибке. Здесь это не будет продемонстрировано.
NotNull запрещает свойствам называться null
Несмотря на то, что впереди есть аннотация NotBlank, некоторые типы упаковки, такие как Integer и Long, по-прежнему должны использовать аннотацию NotNull для оценки.
Оценка диапазона мин. и макс.
Добавьте атрибут age в Param.java и используйте аннотации Min и Max, чтобы ограничить размер.
@Min(1)
@Max(100)
private Integer age;
Проблема в том, что если возраст пуст, он не будет проверен. следующим образом:
Поэтому нам также нужно добавить аннотацию NotNull
@Min(1)
@Max(100)
@NotNull
private Integer age;
Вы также можете использовать аннотацию @Range, чтобы ограничить диапазон
@Range(min = 1, max = 100)
Электронная почта Комментарий Проверить электронную почту
@Email
private String email;
Регулярное выражение проверки аннотации шаблона
@Pattern(regexp = "\d{4}-\d{2}-\d{2}")
private String birthday;
Суммировать
Выше приведены некоторые часто используемые методы проверки параметров.Конечно, есть и очень подробные, которые не перечислены и не обработаны.При необходимости вы можете найти метод использования самостоятельно. Проверка параметров часто должна использоваться в сочетании с глобальным перехватчиком исключений, чтобы возвращаемая структура данных всегда была согласованной, чтобы облегчить интерпретацию клиентом.
В следующем разделе будет объяснен унифицированный формат возврата и глобальный перехватчик исключений.