[Spring]@RequestBody&@ResponseBody宣言
6473 ワード
0.非同期通信
0.1同期
同期通信および同期プログラミングとは、要求の発行にどれだけの時間がかかるかにかかわらず、応答を受信する前に待つ方法を指す.すなわち、送信要求のThreadは、応答が受信される前に「Block」状態になることを意味する.
この方法の利点は,要求と応答値の順序を保証し,要求の処理結果を保証できることである.しかし、応答が遅延されると、送信要求のThreadは待つだけであるという欠点がある.そうすると、本当にThreadを書く必要があるときに、応答待ちで書けないかもしれません.
0.2非同期
非同期通信と非同期プログラミングは同期とは逆に,要求を送信しても応答を待つことはなく,応答を無視する.この場合、Threadは応答を待つことなく、他のことを処理することができます.リクエストを出しても、応答を待たずに他のことをする状態を「Non Block」状態と呼ぶことができます.
応答を待たないため、通信の性能(速度)面では非同期が有利であるが、順序が保証されないため、応答の処理結果を保証する必要があるサービスには適していない.したがって、実行するサービスに応じて同期と非同期を選択する必要があります.
0.3 Ajaxとは?
Ajaxは,非同期JavaScriptとXMLを用いて高速アクションページを作成する開発手法である.
Ajaxは、Webページ全体を再ロードする必要はありません.Webページの一部をリフレッシュするだけです.(非同期)Json、XML、HTML、テキストファイルなど、さまざまな形式のデータを交換することもできます.Ajaxでは、次の操作を実行できます.
ページをリフレッシュせずにサーバを要求
サーバからデータを受信し、操作を実行
0.4 JSONとは?
JSON(JavaScript Object Notation)は、JavaScriptオブジェクトの文字構文で構造化データを表す文字ベースの標準フォーマットです.軽量性のため、Webアプリケーションでデータを転送する際に通常使用され、保存時にも使用されます.XMLフォーマットに比べて、必要な構造はより少なく、通常は
Key : Value
である.{
"employees": [
{
"name": "Suran",
"lastName": "Kim"
},
{
"name": "Seung",
"lastName": "Baik"
}]
"email": "[email protected]", ...
}
前述したように、Key값
または文字列は、常に" "
(二重引用符)でマークされる必要があります.また、アレイ(Array)は[ ]
で表される.単一JSONオブジェクトについては、
.json
の拡張子を持つ単純なテキストファイルに保存できます.MIMEタイプはapplication/json
です.1.@ResquestBodyおよび@ResponseBody宣言
通常、Web上で切り替え(リフレッシュ)を必要とせずに行える動作の多くは非同期通信である.非同期通信を行うには、クライアントでもサーバでも、メッセージ本文にデータを送信する必要があります.このとき、要求と応答に応じてそれぞれ「要求メッセージ」と「応答メッセージ」と呼ばれ、その本文部分を「要求本文」と「応答本文」と呼ぶ.Web上でこのBody部分で最もよく使われるフォーマットはJSON形式です.
@RequestBody:HTTP BodyでJSONをVOにマッピングする説明
@RequestMapping(value = "/requestBodyTest.do")
public String requestBodyTest(@RequestBody UserVO vo) throws Exception {
return "test/login";
}
HTTP要求Bodyは、JavaオブジェクトとしてConversion
を提供する.変換だけでなく、HttpMessageConverter
でリクエストヘッダのContent-Type
をチェックし、JSONを変換可能な変換器(Jackson2ObjectMapperBuilder
)を選択して使用します.このプロセスでは、要求Bodyに含まれるデータがJavaオブジェクトに変換されます.cf)
Jackson2ObjcetMapperBuilder
はspringブートでJacksonAutoConfiguration
クラスによって自動的に設定されるため、ObjectMapper
を使用してJSONをjavaオブジェクトに変換することができ、何も設定する必要はありません.@ResponseBody:VOオブジェクトをJSONに変換してHTTP Bodyに入れる
@ResponseBody
@RequestMapping(value = "/responseBodyTest.do")
public UserVO responseBodyTest() throws Exception {
UserVO vo = new UserVO();
vo.setId("테스트");
return vo;
}
要求の形式に従って、メッセージ変換器を介して結果値を返します.@ResponseBodyでは、JavaオブジェクトをHTTP ResponseBodyに入れて転送できます.
Link
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-%EB%B9%84%EB%8F%99%EA%B8%B0Async%ED%86%B5%EC%8B%A0-%EB%8F%99%EA%B8%B0Sync%ED%86%B5%EC%8B%A0 ,
https://sudo-minz.tistory.com/21 ,
https://velog.io/@ym1085/JSON-%EC%82%AC%EC%9A%A9%EB%B2%95 ,
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/JSON ,
https://developer.mozilla.org/ko/docs/Web/Guide/AJAX/Getting_Started ,
https://truecode-95.tistory.com/113 ,
https://medium.com/webeveloper/reqeustbody%EC%99%80-responsebody-%EC%96%B8%EC%A0%9C-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C-2efcab364edb# ,
Reference
この問題について([Spring]@RequestBody&@ResponseBody宣言), 我々は、より多くの情報をここで見つけました https://velog.io/@dyunge_100/Spring-RequestBody-ResponseBody-어노테이션テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol