ネットワーク全体で最も洗練されたデータ検証方法であるJbootv3.7.5がリリースされました

Jbootは、JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacosなどに基づいて開発されたマイクロサービスフレームワークであり、開発者がマイクロサービス開発のしきい値を下げるのに役立ちます。同時に、アイデアと日食の下で複数のmavenモジュールを完全にサポートし、javaコード、html、css、jsなどのリソースファイルをホットロードします。Shuangshuang開発、幸せな生活。

これまでのところ、Jbootは4年以上オープンソースであり、160以上のバージョンを繰り返し、多くの有名な上場企業を含む1,000を超える企業で使用されています。

Jboot V3.7.5は、Jbootの検証方法を拡張します。Jbootの前の@EmptyValidateと@RegexValidateに基づいて、検証方法は、SpringよりもエレガントでシンプルなJSR303-Bean検証に基づいてさらに簡素化されます。

@NotNull検証

コントローラ(またはサービスなど)では、@ NotNullアノテーションを介してコントローラに直接追加できます。次に例を示します。

 public void test(@NotNull String para) {
        renderText("test6");
    }

パラメータへの@NotNullの追加もSpringでサポートされていると言うかもしれませんが、@ Sizeやその他の検証を使用する場合、Springは次のようなパラメータを直接追加できません。

 public void test(@Size(min=2,max=10) String para) {
        renderText("test6");
    }

これを行うには、フロントエンドによって渡されるparaパラメーターの長さが直接2から10の間でなければなりません。

@サイズ検証

@Size検証は、Stringデータの長さを検証するだけでなく、intlongなどのデータタイプの値のサイズ範囲も検証します。といった:

 public void test(@Size(min=2,max=10) int value) {
        renderText("test6");
    }

これには、valueの値が直接2から10の間である必要があります。

もちろん、@ Sizeを使用して、マップ/リスト/配列の長さを確認することもできます。たとえば、@ JsonBodyを使用して、フロントエンドから渡された値を受け取ることができます。

public void list(@Size(min=2,max=10) @JsonBody() List<MyBean> list) {        
      System.out.println("list--->" + list);        
      renderText("ok");
  }

以前に渡されたMyBeanJson配列の長さは、2から10の間である必要があります。

@NotEmpty検証

@NotEmptyは、文字列タイプがnullまたは空の文字列にならないことを確認できるだけでなく、次のようにMap、List、arrayなどを空にできないことも確認できます。

public void list(@NotEmpty() @JsonBody() List<MyBean> list) {        
      System.out.println("list--->" + list);        
      renderText("ok");
  }

フロントエンドに組み込まれているMyBeanJson配列には値が必要です。

@有効な検証

@Validは、Java Bean検証全体を対象としており、JFinalモデルを検証することもできます。MyBeanJsonの数

たとえば、MyBeanは次のように定義されます。

public class MyBean {
    private String id;  
 
    @NotBlank(message = "密码不能为空")
    private String password;

    @Size(min=0,max=2,message = "性别的值只能是 0 1 2")
    private int sex;

    @Min(value = 18,message = "未成年禁止入内")  
    private Integer age; 
}

 コントローラまたはサービスでは、次のコードでMyBeanを直接検証できます。

 public void test(@Valid() MyBean bean) {
        renderText("test6");
    }

MyBeanがJFinalモデルの場合、getterメソッドに注釈を追加するだけで済みます。

上記の基本的な例に加えて、Jbootの検証はさらに多くの検証をサポートします。

注釈 説明
@NotNull 制限はnullであってはなりません
@DecimalMax(value) 制限は、指定された値以下の数値でなければなりません
@DecimalMin(value) 制限は、指定された値以上の数値である必要があります
@Digits(integer、fraction) 制限は小数でなければならず、整数部分の桁は整数を超えることはできず、小数部分の桁は分数を超えることはできません
@Max(値) 制限は、指定された値以下の数値でなければなりません
@Min(値) 制限は、指定された値以上の数値である必要があります
@Pattern(value) 制限は、指定された正規式に準拠している必要があります
@Size(max、min) 文字の長さを制限するには、最小から最大の間でなければなりません
@空ではない 注釈の要素値がnullでも空でもないことを確認します(文字列の長さが0ではなく、コレクションのサイズが0ではありません)
@NotBlank @NotEmptyとは異なり、注釈の要素値が空でないことを確認します(nullではなく、最初のスペースを削除した後の長さは0です)。@ NotBlankは文字列にのみ適用され、比較中に文字列内のスペースを削除します。
@Eメール 注釈の要素値がEmailであることを確認します。また、通常の式とフラグを使用してカスタムEメール形式を指定することもできます。

検証アノテーションの書き込みを使用する場合、コントローラーでhttp要求データを検証するだけでなく、サービス(プロバイダー)で着信パラメーターも検証します。

フロントエンドでは、検証が失敗した場合、次のJsonコンテンツが返されます(ErrorRenderを構成することで次のコンテンツを変更できます)。

{
    "throwable": "io.jboot.components.valid.ValidException: 必须小于或等于200",
    "errorMessage": "age max value is 200, but current value is 1001 at method: io.jboot.test.validate.ValidateController.test17(int)",
    "errorCode": 400,
    "state": "fail",
    "message": "必须小于或等于200"
}

サービスで検証に失敗すると、ValidException例外がスローされます。

もちろん、ここにはもっと多くの機能があります。ここでは例を1つずつ紹介しません。Jbootを使用して開発するときに、友達がクールになるようにようこそ。

開発文書:

https://jbootprojects.gitee.io/docs/

同時に、Jbootはエンタープライズレベルの開発フレームワークJbootAdminを正式に立ち上げました。詳細は https://jbootprojects.gitee.io/docs/jbootadmin/です。

mavenの依存関係:

<dependency>
    <groupId>io.jboot</groupId>
    <artifactId>jboot</artifactId>
    <version>3.7.5</version>
</dependency>

こんにちは世界:

@RequestMapping("/")
public class HelloworldController extends JbootController {

    public void index(){
        renderText("hello world");
    }

    public static void main(String[] args){
        JbootApplication.run(args);
    }
}

おすすめ

転載: www.oschina.net/news/124287/jboot-3-7-5-released