Я хотел бы использовать аннотации Hibernate Validator для проверки параметров моего запроса, которые передаются в запросе моему сервису.
@GET
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
void searchUsers(@Length(min = 3) @QueryParam("q") String searchTerm, @Range(min = 1, max = Integer.MAX_VALUE) @QueryParam("page") Integer page,
@Suspended AsyncResponse response);
Выше приведен пример метода. Когда я размещаю запрос с параметром q
в запросе длиной 2 символа, мой запрос не отклоняется с кодом 400, а вместо этого проходит весь путь до уровня обслуживания.
Также, если для параметра page
установлено отрицательное число, проверка не происходит.
В моем pom.xml
я включил зависимость валидатора Hibernate:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.Final</version>
</dependency>
Версия Spring, которую я использую: 4.1.6
.
Кроме того, в моем applicationContext.xml
есть следующие компоненты:
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>
Есть ли что-то еще, что мне нужно настроить / включить?