spring MVCの実践は注意しなければならないところです。


spring mvcを使用してrestfulスタイルのインターフェースを提供し、前後端分離を実現し、後端はデータインターフェースだけを提供し、ページレンダリングをしない。そのため、インターフェースを統一的に処理することができます。
  • パラメータチェックを要求する
  • 応答データフォーマット
  • グローバル異常処理
  • 以上の統一処理により、開発者は業務処理に専念し、検査、異常応答の論理を分離することができる。
    要求パラメータの検証:
    urlのパラメータについて
  • @Request Paramを追加したが、このパラメータを伝達しなかった場合、MissingServletRequest Parameter Exception異常
  • をスローする。
  • @Maxなどの注釈を追加すると、この条件を満たしていないので、ContrantViolation ExceptionまたはBindExceptionの異常を投げ出します。
  • request body要求体におけるパラメータ
  • ビーンの前に@Request Bodyを追加し、要求体がなければ、HttpMessage NotReadable Exception異常
  • をスローします。
  • は、beanの前に@Validate注釈を追加し、beanの中に@Max、@NotNullなどの注釈を追加し、応答属性を検証し、満足しない場合はMethodArmement NotValid Exception
  • を抛り出す。
  • @Validate内にgroupを追加し、検証が必要な動作を示し、@Maxはgroupsを追加することができ、groupsがグループoupを含む場合、検証を行う。
  • Benにおいてもカスタム注釈が可能であり、ContrantValidatorインターフェースを実現することによって、カスタムチェックロジックが実現される。検証に失敗したら、MethodAgMentNotValid Exceptionが異常に投げられます。
  • これらの異常はグローバル異常処理でブロックされ、異常情報を返します。
    応答データフォーマット:
  • は、統合応答クラスJsonResp<T>を確立し、一般Tは業務応答内容であり、String、List、java beanなどとすることができる。属性resultを定義すると、応答コードコードコードコードコードコードコード情報msgが成功したかどうかを示します。ここでcodeおよびmsgはグローバル異常処理の応答エニュメレート・クラスに対応しています。
  • は、ResponseBodyhandlerがResponseBody Adviceインターフェースを実現するように定義し、応答タイプがjsonの場合、応答タイプがJsonseBodyAdviceクライアントに直接応答する。もしそうでないなら、new Jsons Respは応答体をセットしてクライアントに応答します。
  • でcontrollerでの方法復帰タイプは、String、List、java beanを任意に定義し、ResonseBodyhanderでは、統一JsonsResp形式に変換することができる。ストリームファイルであれば、そのまま返してもJsonResp形式にはなりません。このように応答を統一されたJsonRespデータフォーマットに包装することができ、先端処理に便利です。
  • グローバル異常処理
  • は、エニュメレート・ResponseEnumに応答して、サービスに必要な応答コード及び応答コード情報
  • を定義する。
  • カスタム異常クラスBaseExceptionを確立し、運転時の異常RuntimeExceptionを引き継ぎ、初期化時にResonseEnumを設定します。
  • 異常捕捉類Global Exception Aspectを作成し、クラスに@Rest COntroller Adviceコメントを追加し、@Exceptionalを使ってパラメータチェック異常とカスタム異常BaseExceptionを捕捉します。
  • 最外層はExceptionを捕捉し、未定義の異常
  • を捕捉する。
  • 業務エラーが発生した場合、throw new BaseException(Resonse Enum.xxx)は、カスタム異常を投げ、この異常はGlobal Exception Asppectによって捉えられ、クライアントに統一的に応答する。
  • 異常応答コードを統一して定義し、確認しやすいです。
    業務コードに異常な応答を避けるため、コードを簡略化する。
    これらの統一処理の本質は、flitorまたはaopブロッキング要求および応答パラメータを用いて汎用論理処理を行うことである。したがって、要求に対して敏感語フィルタリングを行い、パラメータを復号するなどの処理を行い、トラフィック論理を結合することができる。
    以上がspring MVC実践の注意すべきところの詳細です。spring MVC実践に関する資料は他の関連記事に注目してください。