0

以下のような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;
}

null 文字列を回避するために、Lombok の @NotNull や javax.xml.bind.annotation.XmlRootElement の @XmlElement(nillable=false) などの多くの注釈を使用しています。そして私の質問は、min = 5 や max = 10 のように整数または文字列の長さを制限する他の方法または注釈です。

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

ジャクソンを使用しています。@JsonIgnoreProperties のような注釈が Jackson 自体にある場合は、非常に問題ありません。

ありがとう!

4

1 に答える 1

5

Bean 検証

Bean Validationを検討できます。注釈ベースであり、さまざまなフレームワークと統合されます。リファレンス実装はHibernate Validatorです。

役に立つと思われるいくつかのハイライトを次に示します。

  • 検証のためStringに、関心のあるすぐに使える注釈は です@Size

  • 数値の検証については@Min、 、@Max@DecimalMin@DecimalMaxおよび を検討して@Digitsください。

  • @NotNull値を受け入れない場合に使用しnullます。

詳しくはjavax.validation.constraintsパッケージをご確認ください。

Bean 検証と Jersey 2.x

Jersey 2.x での Bean Validation サポートは拡張モジュールとして提供され、ファイルで明示的に言及する必要があり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、クラスパスにすべての推移的な依存関係 (アーティファクトを参照) があることも確認してください。このモジュールは、Bean Validation 仕様の最も一般的に使用される実装を提供する Hibernate Validator に直接依存しています。

Jersey では、Bean Validation モジュールは自動検出可能な機能です。つまり、サーバーにFeature( )を明示的に登録する必要がないモジュールの 1 つです。モジュールをクラスパスに追加します。ValidationFeaturejersey-bean-validation

詳細については、Bean Validation のサポートに関する Jersey のドキュメントを確認してください。

于 2016-08-12T09:10:45.830 に答える