クラス JsonToObjectTransformer
java.lang.ObjectSE
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.transformer.AbstractTransformer
org.springframework.integration.json.JsonToObjectTransformer
- 実装済みのインターフェース一覧:
Aware, BeanClassLoaderAware, BeanFactoryAware, BeanNameAware, InitializingBean, ApplicationContextAware, ComponentSourceAware, ExpressionCapable, GenericTransformer<Message<?>, Message<?>>, NamedComponent, Transformer
JSON 文字列ペイロードを、指定されたターゲットクラスのインスタンスに変換する Transformer の実装。デフォルトでは、jackson-databind lib がクラスパス上に存在する場合、この Transformer は JsonObjectMapperProvider ファクトリを使用して Jackson JSON プロセッサーのインスタンスを取得します。他の JsonObjectMapper 実装も提供できます。
バージョン 3.0 以降、ターゲットクラスを省略することができ、ターゲット型は JsonHeaders 型エントリ(1 レベルのコンテナーまたはマップ型の内容を含む)によって決定できます。
型ヘッダーは、クラスまたは完全修飾クラス名です。
バージョン 5.2.6 以降、ターゲット ResolvableType を何らかの方法で外部で構築できるようにするための SpEL 式オプションが提供されています。
- 導入:
- 2.0
- 作成者:
- Mark Fisher, Artem Bilan, Uwez Khan
- 関連事項:
フィールド概要
クラス IntegrationObjectSupport から継承されたフィールド
EXPRESSION_PARSER, loggerコンストラクター概要
コンストラクターコンストラクター説明JsonToObjectTransformer(@Nullable ClassSE<?> targetClass) JsonToObjectTransformer(@Nullable ClassSE<?> targetClass, @Nullable JsonObjectMapper<?, ?> jsonObjectMapper) JsonToObjectTransformer(ResolvableType targetType) 提供されたResolvableTypeに基づいてインスタンスを構築します。JsonToObjectTransformer(ResolvableType targetType, @Nullable JsonObjectMapper<?, ?> jsonObjectMapper) 提供されたResolvableTypeおよびJsonObjectMapperに基づいてインスタンスを構築します。JsonToObjectTransformer(@Nullable JsonObjectMapper<?, ?> jsonObjectMapper) 方法の概要
修飾子と型メソッド説明protected ObjectSEdoTransform(Message<?> message) サブクラスは、変換ロジックを提供するためにこのメソッドを実装する必要があります。protected voidonInit()サブクラスは、初期化ロジック用にこれを実装できます。voidsetBeanClassLoader(ClassLoaderSE classLoader) voidsetTrustedPackages(StringSE... trustedPackages) リクエストメッセージのJsonHeaders型 ID ヘッダーからターゲット型が解決される際に信頼するパッケージを指定します。voidsetValueTypeExpression(Expression valueTypeExpression) ResolvableTypeを評価して受信 JSON からペイロードをインスタンス化するように SpELExpressionを構成します。voidsetValueTypeExpressionString(StringSE valueTypeExpressionString) ResolvableTypeを評価して受信 JSON からペイロードをインスタンス化するように SpEL 式を構成します。クラス AbstractTransformer から継承されたメソッド
transformクラス IntegrationObjectSupport から継承されたメソッド
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
コンストラクターの詳細
JsonToObjectTransformer
public JsonToObjectTransformer()JsonToObjectTransformer
JsonToObjectTransformer
提供されたResolvableTypeに基づいてインスタンスを構築します。- パラメーター:
targetType- 使用するResolvableType。- 導入:
- 5.2
JsonToObjectTransformer
JsonToObjectTransformer
public JsonToObjectTransformer(@Nullable ClassSE<?> targetClass, @Nullable JsonObjectMapper<?, ?> jsonObjectMapper) JsonToObjectTransformer
public JsonToObjectTransformer(ResolvableType targetType, @Nullable JsonObjectMapper<?, ?> jsonObjectMapper) 提供されたResolvableTypeおよびJsonObjectMapperに基づいてインスタンスを構築します。- パラメーター:
targetType- 使用するResolvableType。jsonObjectMapper- 使用するJsonObjectMapper。- 導入:
- 5.2
方法の詳細
setBeanClassLoader
- 次で指定:
- インターフェース
BeanClassLoaderAware内のsetBeanClassLoader
setValueTypeExpressionString
SpEL 式を設定して、ResolvableTypeを評価し、受信した JSON からペイロードをインスタンス化します。デフォルトでは、このトランスフォーマーはリクエストメッセージ内のJsonHeadersを参照します。この式がnullを返す場合、またはResolvableTypeがClassNotFoundExceptionSE をスローする場合、このトランスフォーマーは提供されたtargetTypeにフォールバックします。このロジックが式として存在するのは、JsonHeadersが実際のクラス値ではなく、外部レジストリに従ってターゲットクラスにマッピングする必要がある型 ID を持つ可能性があるためです。- パラメーター:
valueTypeExpressionString- 使用する SpEL 式。- 導入:
- 5.2.6
setValueTypeExpression
SpELExpressionを設定し、ResolvableTypeを評価して、受信した JSON からペイロードをインスタンス化します。デフォルトでは、このトランスフォーマーはリクエストメッセージ内のJsonHeadersを参照します。この式がnullを返す場合、またはResolvableTypeのビルドでClassNotFoundExceptionSE がスローされた場合、このトランスフォーマーは提供されたtargetTypeにフォールバックします。このロジックが式として存在するのは、JsonHeadersが実際のクラス値ではなく、外部レジストリに従ってターゲットクラスにマッピングする必要がある型 ID を持つ可能性があるためです。- パラメーター:
valueTypeExpression- 使用する SpELExpression。- 導入:
- 5.2.6
setTrustedPackages
ターゲット型がリクエストメッセージJsonHeaders型 ID ヘッダーから解決されるときに信頼するパッケージを指定します。デフォルトでは、Spring メッセージングおよび統合パッケージ (およびjava.langとjava.util) のみが信頼されます (JacksonMessagingUtils.DEFAULT_TRUSTED_PACKAGESを参照)。そのため、信頼されていないパッケージから解決された型は拒否され、信頼されていないソースから提供される任意の潜在的に危険なクラスの逆直列化が防止されます。独自のアプリケーションパッケージをここに追加して許可するか、"*"を使用してすべてのパッケージを信頼します (型 ID ヘッダーが信頼されていないソースから来る可能性がある場合は推奨されません)。この制限は、コンストラクターまたはsetValueTypeExpression(Expression)を介して明示的に構成された型には適用されません。- パラメーター:
trustedPackages- 逆直列化用の信頼できる Java パッケージ。- 導入:
- 5.5.22
- 関連事項:
getComponentType
- 次で指定:
- インターフェース
NamedComponent内のgetComponentType
onInit
protected void onInit()クラスからコピーされた説明:IntegrationObjectSupportサブクラスは、初期化ロジック用にこれを実装できます。- オーバーライド:
- クラス
IntegrationObjectSupportのonInit
doTransform
クラスからコピーされた説明:AbstractTransformerサブクラスは、変換ロジックを提供するためにこのメソッドを実装する必要があります。戻り値自体がメッセージの場合、結果として使用されます。そうでない場合、null 以外の戻り値が結果メッセージのペイロードとして使用されます。- 次で指定:
- クラス
AbstractTransformerのdoTransform - パラメーター:
message- メッセージ。- 戻り値:
- 変換の結果。