検索
ホームページJava&#&チュートリアルSpringBoot HttpMessageConverterメッセージコンバータの使用方法

SpringBoot HttpMessageConverterメッセージコンバータの使用方法

May 10, 2023 pm 07:40 PM
springboothttpmessageconverter

メッセージコンバータの役割

  • リクエストメッセージをJavaオブジェクトに変換する

  • Javaオブジェクトをレスポンスメッセージに変換する

メッセージ コンバータの主なメソッド

  • getSupportedMediaTypes: サポートされている MediaType コレクション (text/html、text/plain、application/json など) を取得します。 )

  • canRead: 読み込み可能か判定(リクエスト)

  • read: リクエストデータのフォーマット変換(リターン時に呼び出されます) canRead メソッドの値が true )

  • canWrite: 書き込み可能かどうか判定(応答)

  • write: フォーマットを変換応答データ (canWrite メソッドの戻り値が true の場合 Call)

デフォルト設定されたメッセージ コンバータ

SpringMVC は一部の HttpMessageConverter (WebMvcConfigurationSupport クラスの addDefaultHttpMessageConverters) を自動的に設定します起動時のメソッド

#ソース コードは次のとおりです。

	protected final void addDefaultHttpMessageConverters(List<HttpMessageConverter<?>> messageConverters) {
		messageConverters.add(new ByteArrayHttpMessageConverter());
		messageConverters.add(new StringHttpMessageConverter());
		messageConverters.add(new ResourceHttpMessageConverter());
		messageConverters.add(new ResourceRegionHttpMessageConverter());
		try {
			messageConverters.add(new SourceHttpMessageConverter<>());
		}
		catch (Throwable ex) {
			// Ignore when no TransformerFactory implementation is available...
		}
		messageConverters.add(new AllEncompassingFormHttpMessageConverter());
		if (romePresent) {
			messageConverters.add(new AtomFeedHttpMessageConverter());
			messageConverters.add(new RssChannelHttpMessageConverter());
		}
		if (jackson2XmlPresent) {
			Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml();
			if (this.applicationContext != null) {
				builder.applicationContext(this.applicationContext);
			}
			messageConverters.add(new MappingJackson2XmlHttpMessageConverter(builder.build()));
		}
		else if (jaxb2Present) {
			messageConverters.add(new Jaxb2RootElementHttpMessageConverter());
		}
		if (jackson2Present) {
			Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json();
			if (this.applicationContext != null) {
				builder.applicationContext(this.applicationContext);
			}
			messageConverters.add(new MappingJackson2HttpMessageConverter(builder.build()));
		}
		else if (gsonPresent) {
			messageConverters.add(new GsonHttpMessageConverter());
		}
		else if (jsonbPresent) {
			messageConverters.add(new JsonbHttpMessageConverter());
		}
		if (jackson2SmilePresent) {
			Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.smile();
			if (this.applicationContext != null) {
				builder.applicationContext(this.applicationContext);
			}
			messageConverters.add(new MappingJackson2SmileHttpMessageConverter(builder.build()));
		}
		if (jackson2CborPresent) {
			Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.cbor();
			if (this.applicationContext != null) {
				builder.applicationContext(this.applicationContext);
			}
			messageConverters.add(new MappingJackson2CborHttpMessageConverter(builder.build()));
		}
	}

部分メッセージ コンバーターの解析

# #DescriptionMappingJackson2HttpMessageConverterJSON 形式のデータの読み取りと書き込みを担当します (Jackson を使用) # #AllEncompassingFormHttpMessageConverterJaxb2RootElementHttpMessageConverterByteArrayHttpMessageConverterStringHttpMessageConverterResourceHttpMessageConverterSourceHttpMessageConverter注意事項
Name
フォーム フォーム データの読み取りと書き込みを担当します
XML 形式データの読み取りと書き込みを担当します (JAXB を使用)
バイナリ形式データの読み取りと書き込みを担当します
は文字列の読み取りと書き込みを担当しますformat data
はリソース ファイル データの読み取りと書き込みを担当します
担当リソース データの読み取りと書き込み用

##システムには、デフォルトで構成された一連のメッセージ コンバーターがあります。

処理プロセスは、収集された順序で適切なメッセージ コンバータを照合します。適切なメッセージ コンバータがあれば、そのメッセージ コンバータが処理 (読み取り、書き込み) に使用され、それ以降のメッセージ コンバータは処理されません。実行されました。

カスタム メッセージ コンバーターを有効にするには、コレクション内の同じ種類のメッセージ コンバーターの前に配置する必要があります。理由については、2 番目の点を参照してください。

考察: カスタム メッセージ コンバーターはコレクション内の同じタイプのメッセージ コンバーターの前に配置する必要があるため、コレクション内の元のメッセージ コンバーターを追加せずにカスタム効果を実現するために直接変更できるでしょうか。 (まだ調査されていません)。

カスタム メッセージ コンバーターを追加するときは、デフォルトのメッセージ コンバーターが有効かどうかに注意してください

    WebMvcConfigurer.configureMessageConverters メソッドはデフォルトのメッセージ コンバーター セットをオーバーライドします
  • WebMvcConfigurer.extendMessageConverters メソッドはデフォルトのメッセージ コンバータ コレクションをオーバーライドしません

以上がSpringBoot HttpMessageConverterメッセージコンバータの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、