Spring Boot Development Webプロジェクトは、非空白の整数値の範囲、文字列の長さ、日付、電子メールなどのコントローラーレイヤーによって渡されたパラメーターの基本的な検証を実行する必要がある場合があります。SpringはJSR-303 Bean検証APIをサポートします。
検証には注釈を使用します
最初にフォームカプセル化オブジェクトを定義します
class requestform {@size(min = 1、max = 5)private string name; public string getName(){return name; } public void setName(string name){this.name = name; }}名前フィールドは、サイズの注釈付きの1〜5の長さに制限されています。サイズは、javax.validationパッケージの制約注釈です。
@validアノテーションを使用する場合、豆を検証することを意味します。
@responsebody @getMapping(value = "bean")public string validate(@valid requestform request){system.out.println(request.getName()); 「OK」を返します。 }カスタムアノテーション
内蔵の注釈だけでは不十分な場合は、注釈をカスタマイズできます。
たとえば、最初に注釈nameconstraintを定義し、特定のデータから選択する名前フィールドを制限します。
@target({elementType.field、elementType.parameter})@retention(retentionPolicy.runtime)@constraint(validatedby = nameconstraintvalidator.class)@interface nameconstraint {string [] adovervalues(); class <?> [] groups()default {};クラス<?ペイロード> [] payload()default {};文字列メッセージ();}AllowsValuesは法的価値の範囲を表し、メッセージは検証障害のための表示情報です。
メッセージ、グループ、およびペイロードは、Hibernate Validatorが必要とするフィールドです。知りたい場合は、公式ドキュメントを参照してください。
実際の検証のためにバリデーターを定義します
クラスnameconstraintalidatorは、制約validator <nameconstraint、string> {private string [] validvalues; @Override public void initialize(nameconstraint constraintannotation){validvalues = constraintannotation.allowedValues(); } @Override public boolean isvalid(string value、constraintValidatorContext Context){for(string s:this.validvalues){if(s.equals(value)){return true; }} falseを返します。 }}次のようにフォームBeanで使用します
class requestformwithcustomconstraint {@nameconstraint(approadvalues = {"bar"、 "foo"}、message = "only bar、foo")private string name; public string getName(){return name; } public void setName(string name){this.name = name; }}パラメーターの直接検証
オブジェクトをカプセル化したくない場合はどうすればよいですか?このパラメーターは直接確認できます
@controller@validated@requestmapping(value = "validator")public class parametervalidatordemocontroller {@responsebody @getmapping(value = "simple")public string validateParameter(@size(min = 1、max = 5)string name){system.out.out.println(name); 「OK」を返します。 }}コントローラーの上の@validatedアノテーションは、制約の注釈を確認するためにこのクラスをスキャンする必要があることをSpringに伝えます。
詳細については、公式文書の関連する章を参照してください。
https://docs.spring.io/spring-boot/docs/1.5.9.release/reference/htmlsingle/#boot-features-validation
https://docs.spring.io/spring/docs/4.3.16.release/spring-framework-reference/htmlsingle/#validation-beanvalidation
Githubのコード
https://github.com/kabike/spring-boot-demo
要約します
上記は、編集者が紹介したSpring Bootパラメーター検証方法の詳細な説明です。それがあなたに役立つことを願っています。ご不明な点がございましたら、メッセージを残してください。編集者は時間内に返信します!