Ограничить длину ввода с помощью аннотации в Java POJO

У меня есть класс POJO, как показано ниже,

    @XmlRootElement
    public class JsonReply {

@XmlElement(nillable = false)
String callResult;

@XmlElement(nillable=false)
String returnobj;

@NotNull
String callError;

public String getCallResult() {
    return callResult;
}

public void setCallResult(String callResult) {
    this.callResult = callResult;
}

public String getCallError() {
    return callError;
}

public void setCallError(String callError) {
    this.callError = callError;
}

Чтобы избежать пустой строки, я использую много аннотаций, таких как @NotNull от Lombok и @XmlElement из javax.xml.bind.annotation.XmlRootElement (nillable=false). И мой вопрос заключается в том, что есть ли другой способ или аннотация, чтобы ограничить длину для Integer или String, как min=5 и max=10.

       @Size(max=10)
       @Max(5)
       Integer sampleint;

Я использую Джексона. если в самом Джексоне есть какая-либо аннотация, такая как @JsonIgnoreProperties, тогда очень хорошо.

Спасибо!

1 ответ

Решение

Проверка бобов

Вы могли бы рассмотреть Валидацию Бина. Он основан на аннотациях и интегрируется с широким спектром фреймворков. Эталонная реализация - http://hibernate.org/validator/.

Вот некоторые основные моменты, которые могут быть полезны для вас:

  • За String Проверка, готовая аннотация, которая может вас заинтересовать, @Size,

  • Для проверки номера, рассмотрим @Min, @Max, @DecimalMin, @DecimalMax а также @Digits,

  • использование @NotNull не принимать null ценности.

Для более подробной информации, проверьте javax.validation.constraints пакет.

Проверка бобов и Джерси 2.x

Поддержка Bean Validation в Jersey 2.x предоставляется в качестве модуля расширения и должна быть явно указана в вашем pom.xml файл (в случае использования Maven):

<dependency>
    <groupId>org.glassfish.jersey.ext</groupId>
    <artifactId>jersey-bean-validation</artifactId>
    <version>2.23.2</version>
</dependency>

Если вы не используете Maven, убедитесь, что у вас также есть все переходные зависимости (см. jersey-bean-validation артефакт) на пути к классам. Этот модуль напрямую зависит от Hibernate Validator, который предоставляет наиболее часто используемую реализацию спецификации Bean Validation.

В Джерси модуль Bean Validation представляет собой автоматически обнаруживаемые функции, то есть это один из модулей, где вам не нужно явно регистрировать его. Feature с (ValidationFeature) на сервере, так как его функции автоматически обнаруживаются и регистрируются при добавлении jersey-bean-validation модуль для вашего classpath.

Для получения более подробной информации, ознакомьтесь с документацией Джерси о поддержке Bean Validation.

Другие вопросы по тегам