Spring アノテーションでの @validated の使用

spring-bootでは@validatedを利用してデータを検証し、データが異常であれば一律に例外をスローすることで例外センターの一元的な処理を容易にします。
たとえば、入力パラメータが正当かどうかを判断するには、次のメソッドを使用できます。

1. 基本的な使い方
spring-boot は基本パッケージを導入しているのでそのまま利用可能
1 まずコントローラ上でデータ検証が必要であることを宣言

@RequestMapping(value="/url.json",method= {RequestMethod.POST})
@ResponseBody
@Transactional
public Result<?> xxmethod( @RequestBody @Validated  XoPO xoPo)     
    throws ParseException, UnsupportedEncodingException {}

2 次に、Bean 上で検証する必要があるフィールドを宣言します。

@data
public class XoPO{
    
    @validated
    private List<OrderPerson> personList;
    
    @NotNull
    @Size(max=32,message="code is null")
    private String code;

    @NotBlank
    @Size(max=32,message="product is null")
    private String product;
}

そして、入力が条件を満たさない場合には例外がスローされ、例外センターによって処理されます。BindingResult を
使用することもできますが、これを使用した後は、通常のロジック処理に侵入して手動で例外を処理する必要があり、それはお勧めしません

よく使用される 2 つのアノテーション タイプ
注: 例外タイプを誤って使用しないでください。たとえば、@size は int では使用できません。

よく使用されるアノテーションは次のとおりです

@AssertFalse 校验false
@AssertTrue 校验true
@DecimalMax(value=,inclusive=) 小于等于value,
inclusive=true,是小于等于
@DecimalMin(value=,inclusive=) 与上类似
@Max(value=) 小于等于value
@Min(value=) 大于等于value
@NotNull  检查Null
@Past  检查日期
@Pattern(regex=,flag=)  正则
@Size(min=, max=)  字符串,集合,map限制大小
@Validate 对po实体类进行校验

3 つのネストされた検証
クラスに別のエンティティ クラスが含まれている場合は、上記のように @Validated を追加するだけです。

public class XoPO {    
    @validated
    private List<PersonDetailPO> personList;
 }

4 つの @pathvariable 検証
spring-boot は現在パラメーター検証をサポートしていない可能性があります: https://jira.spring.io/browse…

public Result<?> xoById( @NotNull @NotBlank @Size(min=10,max=32)@PathVariable(value="accountId") String id) {}

ただし、例外をスローすることはまだできません。これは Spring の次のバージョン、または @Pathvariable のないサービスで解決される可能性があります。

Class XoService{
   public xoMethon( @NotNull String id){
   }
}

おすすめ

転載: blog.csdn.net/m0_43413873/article/details/123200517