春-MVC-ブート-5のカスタムパラメータ変換して出力JSON

まず、原則

さらに、サーバとクライアントとの対話コンテキストセッション(セッション)機構を備え、HTTPリクエスト=要求ヘッダー(ヘッダー)+リクエストボディ(ボディ)+ URL +パラメータ、ここでとは、変換要求メッセージ変換体を指します

リクエストが来たとき、我々は最初のHTTPリクエストパラメータとコンテキストから取得されます。

     注1:簡単なパラメータである場合、SpringMVC自体提供される単純な変換器で変換されます。intとしてというようにそのような。

     注2:変換は、HTTPリクエストボディ(BODY)であれば、HttpMessageConverterインタフェースを呼び出します。

     注3:HttpMessageConverterインターフェースコールリクエストボディ(ボディ)変換、

               まず第一に、それは、変換canReadかどうかを判断します。

               次いで、(ユーザJSON)は、コントローラ(ユーザーユーザー)への読み取りパラメータを変換します。

      注4:パラメータ変換はcanRead +読取りに使用されます

      注5:出力は書き込み+ JSON canWriteとして使用されています

               結果のタイプを返し、メディアタイプパラメータとして、この方法は判断する場合canWriteのMappingJackson2HttpMessageConverter変換



二、HttpMessageConverterインタフェース解析      

 public interface HttpMessageConverter<T> {

     1.是否可读,其中clazz为Java类型,mediaType为HTTP请求类型
     canRead(clazz,mediaType);

     2.是否可转换为mediaType类型
     canWrite(Class <?> clazz,MediaType mediaType);

     3.可支持的媒体类型列表
     List<MediaType> getSupportedMediaTypes();

     4.当canRead验证通过后,读入HTTP请求信息
      T read(clazz,inputMessage)

     5.当 canWrite 方法验证通过后,写入响应
      void write(T t,contentType,outputMessage)
}

第三に、アーキテクチャ解析

--------------------------------------------------------
       +----------------------------+
       |  HttpMessageConverter      |
       +--------------+---------+---+
                      |        |||   +----------+
                      |         +----|调用控制器|
                      |              +----------+
                      |                |||
+---------------------|-----------------|------+
|webDataBinder       |||                |      |
|  +------------------------------+     |      |
|  | |---------|     |---------|  |     |      |
|  | |Converter|     |Formatter|  |     |      |
|  | +---------|     |---------+  |     |      |
|  |       |----------------|     |     |      |
|  |       |GenericConverter|     |     |      |
|  |       |----------------|     |     |      |
|  +---------------|--------------+     |      |
|           |------|----|        -+----------+ |
|           |   POJO    |---------| 验证机制 | |
|           |-----------|        -|----------| |
+----------------------------------------------+

第四に、説明

1. SpringMVCはWebDataBinder機構によってパラメータを得ることで、その主な役割は、HTTPリクエストのコンテキスト、呼び出しの前にコントローラを解析することです。

  •    WebDataBinderメカニズム[認証パラメータ取得パラメータ--- --- ---変換パラメータ>コントローラ
  •    3つのインターフェイスコンバータ[[全般] +フォーマッタ[フォーマット変換] + GenericConverter [配列]を介しWebDataBinder機構は、様々なパラメータに変換しました
  •    SpringMVCこれらの3つのインターフェイスは、RIの機構を用いており、登録されているコンピュータ内の変換器の数が登録されています。

RequestBody @ 2.プロセッサ本体(ボディ)は、パラメータ変換を行う注釈コンテンツ要求を使用して表記した後、そのJSON要求タイプとしてのフロントエンドは、SPRINGMVCカスタムコンバータ[]を呼び出します。
 

前端的JSON类型数据---canRead方法---read方法---转换为控制器的(User)类参数  

3.使用例

  • 1-1変換アプリケーション:コンバーター-1カスタム・コンバータ:@コンポーネント+実現コンバーター。springMVCは自動的に変換器への登録スキャンします。


 


注:使用URLは - 間隔の文字列を、コントローラが自動的にユーザーに変換しました


  • GenericConverterトランスデューサアレイ:アレイ2変換のアプリケーションストリングは、サブコンマに係る第一の分割です。次に、元のジェネリック型String、ユーザコンバータ<文字列、ユーザー>変換の一般的な目的に従ってください。  


おすすめ

転載: blog.csdn.net/lidongliangzhicai/article/details/91978350