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);
}
}