public class MappingJackson2MessageConverter extends ObjectSE implements SmartMessageConverter, BeanClassLoaderAware
BytesMessageEE に、または targetType が MessageType.TEXT に設定されている場合は TextMessageEE にマップします。TextMessageEE または BytesMessageEE からオブジェクトに変換します。Jackson のデフォルトプロパティを次のようにカスタマイズします。
Spring 5.3 以降、Jackson 2.9 から 2.12 と互換性があります。
| 修飾子と型 | フィールドと説明 |
|---|---|
static StringSE | DEFAULT_ENCODING テキストメッセージへの書き込みに使用されるデフォルトのエンコーディング: UTF-8。 |
| コンストラクターと説明 |
|---|
MappingJackson2MessageConverter() |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected ObjectSE | convertFromBytesMessage(BytesMessageEE message, JavaType targetJavaType)BytesMessage を、指定された型の Java オブジェクトに変換します。 |
protected ObjectSE | convertFromMessage(MessageEE message, JavaType targetJavaType) カスタムメッセージマッピングを可能にするテンプレートメソッド。 |
protected ObjectSE | convertFromTextMessage(TextMessageEE message, JavaType targetJavaType)TextMessage を、指定された型の Java オブジェクトに変換します。 |
ObjectSE | fromMessage(MessageEE message)JMS メッセージから Java オブジェクトに変換します。 |
protected JavaType | getJavaTypeForMessage(MessageEE message) 指定された JMS メッセージの Jackson JavaType を決定します。通常は、型 ID メッセージプロパティを解析します。 |
protected ClassSE<?> | getSerializationView(ObjectSE conversionHint) 指定された変換ヒントに基づいて、Jackson 直列化ビューを決定します。 |
protected BytesMessageEE | mapToBytesMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) 指定されたオブジェクトを BytesMessageEE にマッピングします。 |
protected MessageEE | mapToMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter, MessageType targetType) カスタムメッセージマッピングを可能にするテンプレートメソッド。 |
protected TextMessageEE | mapToTextMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) 指定されたオブジェクトを TextMessageEE にマッピングします。 |
void | setBeanClassLoader(ClassLoaderSE classLoader)Bean class loaderSE を Bean インスタンスに提供するコールバック。 |
void | setEncoding(StringSE encoding) テキストベースのメッセージ本文コンテンツとの間で変換するときに使用するエンコーディングを指定します。 |
void | setEncodingPropertyName(StringSE encodingPropertyName) バイトから文字列へのエンコーディングを運ぶ JMS メッセージプロパティの名前を指定し、変換プロセス中に BytesMessage が使用されます。 |
void | setObjectMapper(ObjectMapper objectMapper) デフォルトを使用する代わりに、使用する ObjectMapper を指定します。 |
void | setTargetType(MessageType targetType) |
void | setTypeIdMappings(MapSE<StringSE, ClassSE<?>> typeIdMappings) 必要に応じて、型 ID から Java クラスへのマッピングを指定します。 |
protected void | setTypeIdOnMessage(ObjectSE object, MessageEE message) 指定された JMS メッセージの指定されたペイロードオブジェクトの型 ID を設定します。 |
void | setTypeIdPropertyName(StringSE typeIdPropertyName) 含まれるオブジェクトの型 ID を保持する JMS メッセージプロパティの名前(マップされた ID 値または生の Java クラス名)を指定します。 |
MessageEE | toMessage(ObjectSE object, SessionEE session) 提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。 |
MessageEE | toMessage(ObjectSE object, SessionEE session, ClassSE<?> jsonView) 指定された json ビューと提供されたセッションを使用して Java オブジェクトを JMS メッセージに変換し、メッセージオブジェクトを作成します。 |
MessageEE | toMessage(ObjectSE object, SessionEE session, ObjectSE conversionHint) 引数として追加の変換コンテキストをとる MessageConverter.toMessage(Object, Session) のバリアント。 |
protected MessageEE | toMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setObjectMapper(ObjectMapper objectMapper)
ObjectMapper を指定します。public void setTargetType(MessageType targetType)
toMessage(Object, Session) が BytesMessageEE または TextMessageEE にマーシャリングするかどうかを指定します。 デフォルトは MessageType.BYTES です。つまり、このコンバーターは BytesMessageEE にマーシャリングします。このコンバーターのデフォルトバージョンは MessageType.BYTES および MessageType.TEXT のみをサポートすることに注意してください。
public void setEncoding(StringSE encoding)
テキストベースのメッセージから読み取る場合、特別な JMS プロパティを通じてエンコーディングが提案されている可能性があり、この MessageConverter インスタンスに設定されたエンコーディングよりも優先されます。
public void setEncodingPropertyName(StringSE encodingPropertyName)
デフォルトはなしです。このプロパティの設定はオプションです。設定されていない場合、受信バイトメッセージのデコードには UTF-8 が使用されます。
public void setTypeIdPropertyName(StringSE typeIdPropertyName)
デフォルトはなしです。 注: 受信メッセージから Java オブジェクトへの変換を可能にするには、このプロパティを設定する必要があります。
public void setTypeIdMappings(MapSE<StringSE,ClassSE<?>> typeIdMappings)
デフォルトは、カスタムマッピングなし、つまり生の Java クラス名を転送します。
typeIdMappings - 型 ID 値をキーとして、Java クラスを値として持つ Mappublic void setBeanClassLoader(ClassLoaderSE classLoader)
BeanClassLoaderAwareclass loaderSE を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware の setBeanClassLoader classLoader - 所有クラスローダー public MessageEE toMessage(ObjectSE object, SessionEE session) throws JMSExceptionEE, MessageConversionException
MessageConverterMessageConverter の toMessage object - 変換するオブジェクト session - JMS メッセージの作成に使用するセッション JMSExceptionEE - JMS API メソッドによってスローされた場合 MessageConversionException - 変換に失敗した場合 public MessageEE toMessage(ObjectSE object, SessionEE session, @Nullable ObjectSE conversionHint) throws JMSExceptionEE, MessageConversionException
SmartMessageConverterMessageConverter.toMessage(Object, Session) のバリアント。ペイロードパラメーターのアノテーションを考慮します。SmartMessageConverter の toMessage object - 変換するオブジェクト session - JMS メッセージの作成に使用するセッション conversionHint - MessageConverter に渡される追加のオブジェクト。関連する MethodParameter (null の場合があります。}JMSExceptionEE - JMS API メソッドによってスローされた場合 MessageConversionException - 変換に失敗した場合 MessageConverter.toMessage(Object, Session)public MessageEE toMessage(ObjectSE object, SessionEE session, @Nullable ClassSE<?> jsonView) throws JMSExceptionEE, MessageConversionException
object - 変換するオブジェクト session - JMS メッセージの作成に使用するセッション jsonView - コンテンツのフィルタリングに使用するビュー JMSExceptionEE - JMS API メソッドによってスローされた場合 MessageConversionException - 変換に失敗した場合 public ObjectSE fromMessage(MessageEE message) throws JMSExceptionEE, MessageConversionException
MessageConverterMessageConverter の fromMessage message - 変換するメッセージ JMSExceptionEE - JMS API メソッドによってスローされた場合 MessageConversionException - 変換に失敗した場合 protected MessageEE toMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, MessageConversionException
protected TextMessageEE mapToTextMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, IOExceptionSE
TextMessageEE にマッピングします。object - マッピングされるオブジェクト session - 現在の JMS セッション objectWriter - 使用するライター JMSExceptionEE - JMS メソッドによってスローされた場合 IOExceptionSE - I/O エラーの場合 Session.createBytesMessage()EEprotected BytesMessageEE mapToBytesMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter) throws JMSExceptionEE, IOExceptionSE
BytesMessageEE にマッピングします。object - マッピングされるオブジェクト session - 現在の JMS セッション objectWriter - 使用するライター JMSExceptionEE - JMS メソッドによってスローされた場合 IOExceptionSE - I/O エラーの場合 Session.createBytesMessage()EEprotected MessageEE mapToMessage(ObjectSE object, SessionEE session, ObjectWriter objectWriter, MessageType targetType) throws JMSExceptionEE, IOExceptionSE
setTargetType(org.springframework.jms.support.converter.MessageType) が MessageType.TEXT または MessageType.BYTES でない場合に呼び出されます。 デフォルトの実装は IllegalArgumentExceptionSE をスローします。
object - マーシャリングするオブジェクト session - JMS セッション objectWriter - 使用するライター targetType - ターゲットメッセージ型 (TEXT または BYTES 以外)JMSExceptionEE - JMS メソッドによってスローされた場合 IOExceptionSE - I/O エラーの場合 protected void setTypeIdOnMessage(ObjectSE object, MessageEE message) throws JMSExceptionEE
デフォルトの実装は、設定された型 ID マッピングを調べて、結果の値(マッピングされた ID または生の Java クラス名)を設定された型 ID メッセージプロパティに設定します。
object - 型 ID を設定するペイロードオブジェクト message - 型 ID プロパティを設定する JMS メッセージ JMSExceptionEE - JMS メソッドによってスローされた場合 getJavaTypeForMessage(javax.jms.Message), setTypeIdPropertyName(String), setTypeIdMappings(java.util.Map)protected ObjectSE convertFromTextMessage(TextMessageEE message, JavaType targetJavaType) throws JMSExceptionEE, IOExceptionSE
message - 入力メッセージ targetJavaType - ターゲット型 JMSExceptionEE - JMS によってスローされた場合 IOExceptionSE - I/O エラーの場合 protected ObjectSE convertFromBytesMessage(BytesMessageEE message, JavaType targetJavaType) throws JMSExceptionEE, IOExceptionSE
message - 入力メッセージ targetJavaType - ターゲット型 JMSExceptionEE - JMS によってスローされた場合 IOExceptionSE - I/O エラーの場合 protected ObjectSE convertFromMessage(MessageEE message, JavaType targetJavaType) throws JMSExceptionEE, IOExceptionSE
setTargetType(org.springframework.jms.support.converter.MessageType) が MessageType.TEXT または MessageType.BYTES でない場合に呼び出されます。 デフォルトの実装は IllegalArgumentExceptionSE をスローします。
message - 入力メッセージ targetJavaType - ターゲット型 JMSExceptionEE - JMS によってスローされた場合 IOExceptionSE - I/O エラーの場合 protected JavaType getJavaTypeForMessage(MessageEE message) throws JMSExceptionEE
デフォルトの実装は、設定された型 ID プロパティ名を解析し、設定された型 ID マッピングを調べます。これは別の戦略でオーバーライドできます。メッセージの発信元に基づいたヒューリスティックを実行します。
message - 型 ID プロパティを取得する JMS メッセージ JMSExceptionEE - JMS メソッドによってスローされた場合 setTypeIdOnMessage(Object, javax.jms.Message), setTypeIdPropertyName(String), setTypeIdMappings(java.util.Map)