クラス Jackson2ObjectMapperFactoryBean
- 実装されているすべてのインターフェース:
- Aware、- BeanClassLoaderAware、- FactoryBean<ObjectMapper>、- InitializingBean、- ApplicationContextAware
ObjectMapper(デフォルト)または XmlMapper(createXmlMapper プロパティを true に設定)を作成するための FactoryBean は、XML 構成内から Jackson 機能を有効または無効にします。Jackson のデフォルトプロパティを次のようにカスタマイズします。
MappingJackson2HttpMessageConverter の使用例:
 <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
   <property name="objectMapper">
     <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
       p:autoDetectFields="false"
       p:autoDetectGettersSetters="false"
       p:annotationIntrospector-ref="jaxbAnnotationIntrospector" />
   </property>
 </bean>MappingJackson2JsonView の使用例:
 <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
   <property name="objectMapper">
     <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
       p:failOnEmptyBeans="false"
       p:indentOutput="true">
       <property name="serializers">
         <array>
           <bean class="org.mycompany.MyCustomSerializer" />
         </array>
       </property>
     </bean>
   </property>
 </bean> 特定の setter が提供されていない場合(まれに使用されるオプションの場合)でも、より一般的な方法 setFeaturesToEnable(java.lang.Object...) および setFeaturesToDisable(java.lang.Object...) を使用できます。
 <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
   <property name="featuresToEnable">
     <array>
       <util:constant static-field="com.fasterxml.jackson.databind.SerializationFeature.WRAP_ROOT_VALUE"/>
       <util:constant static-field="com.fasterxml.jackson.databind.SerializationFeature.CLOSE_CLOSEABLE"/>
     </array>
   </property>
   <property name="featuresToDisable">
     <array>
       <util:constant static-field="com.fasterxml.jackson.databind.MapperFeature.USE_ANNOTATIONS"/>
     </array>
   </property>
 </bean>また、次の既知のモジュールがクラスパスで検出された場合、自動的に登録します。
- jackson-datatype-jdk7: PathSE のような Java 7 型のサポート
- jackson-datatype-jdk8: OptionalSE のような他の Java 8 型のサポート
- jackson-datatype-jsr310: Java 8 Date&Time API 型のサポート
- jackson-module-kotlin: Kotlin クラスとデータクラスのサポート
Jackson の ObjectMapper をカスタム Module で構成する場合は、setModulesToInstall(java.lang.Class<? extends com.fasterxml.jackson.databind.Module>...) を介してクラス名でこのようなモジュールを 1 つ以上登録できます。
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"> <property name="modulesToInstall" value="myapp.jackson.MySampleModule,myapp.jackson.MyOtherModule"/> </bean>
- 導入:
- 3.2
- 作成者:
- Dmitry Katsubo, Rossen Stoyanchev, Brian Clozel, Juergen Hoeller, Tadaya Tsuyukubo, Sebastien Deleuze
- フィールドのサマリー- インターフェース org.springframework.beans.factory.FactoryBean から継承されたフィールド- OBJECT_TYPE_ATTRIBUTE
- コンストラクターの概要コンストラクター
- メソッドのサマリー修飾子と型メソッド説明- voidシングルトン ObjectMapper を返します。- ClassSE<?>この FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合は- nullを返します。- booleanこのファクトリによって管理されるオブジェクトはシングルトンですか? つまり、- FactoryBean.getObject()は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?- void- setAnnotationIntrospector- (AnnotationIntrospector annotationIntrospector) シリアライゼーションとデシリアライゼーションの両方に- AnnotationIntrospectorを設定します。- void- setApplicationContext- (ApplicationContext applicationContext) Jackson ハンドラー(- JsonSerializer、- JsonDeserializer、- KeyDeserializer、- TypeResolverBuilder、- TypeIdResolver)をオートワイヤーするために、ビルダー- ApplicationContextを設定します。- void- setAutoDetectFields- (boolean autoDetectFields) - MapperFeature.AUTO_DETECT_FIELDSオプションのショートカット。- void- setAutoDetectGetterSetter- (boolean autoDetectGetterSetter) - void- setBeanClassLoader- (ClassLoaderSE beanClassLoader) Bean- class loaderSE を Bean インスタンスに提供するコールバック。- void- setCreateXmlMapper- (boolean createXmlMapper) true に設定し、カスタム- ObjectMapperが設定されていない場合、デフォルトのコンストラクターを使用して- XmlMapperが作成されます。- void- setDateFormat- (DateFormatSE dateFormat) 指定された- DateFormatSE で日付 / 時刻の形式を定義します。- void- setDefaultTyping- (TypeResolverBuilder<?> typeResolverBuilder) Jackson のデフォルトの入力に使用する- TypeResolverBuilderを指定します。- void- setDefaultUseWrapper- (boolean defaultUseWrapper) ラッパーがインデックス付き(リスト、配列)プロパティに使用されるかどうかを定義します(既定では使用されません(- XmlMapperのみに適用されます))。- void- setDefaultViewInclusion- (boolean defaultViewInclusion) - MapperFeature.DEFAULT_VIEW_INCLUSIONオプションのショートカット。- void- setDeserializers- (JsonDeserializer<?>... deserializers) カスタムデシリアライザーを構成します。- void- setDeserializersByType- (MapSE<ClassSE<?>, - JsonDeserializer<?>> deserializers) 指定された型のカスタムデシリアライザーを構成します。- void- setFactory- (JsonFactory factory) - ObjectMapperインスタンスの作成に使用される- JsonFactoryを定義します。- void- setFailOnEmptyBeans- (boolean failOnEmptyBeans) - SerializationFeature.FAIL_ON_EMPTY_BEANSオプションのショートカット。- void- setFailOnUnknownProperties- (boolean failOnUnknownProperties) - DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIESオプションのショートカット。- void- setFeaturesToDisable- (ObjectSE... featuresToDisable) 無効にする機能を指定します。- void- setFeaturesToEnable- (ObjectSE... featuresToEnable) 有効にする機能を指定します。- void- setFilters- (FilterProvider filters) - @JsonFilterアノテーション付き POJO をサポートするために使用するグローバルフィルターを設定します。- void- setFindModulesViaServiceLoader- (boolean findModules) クラスパス内の META-INF メタデータに基づいて、Jackson が JDK ServiceLoader を介して使用可能なモジュールを検索するかどうかを設定します。- void- setHandlerInstantiator- (HandlerInstantiator handlerInstantiator) Jackson ハンドラー(- JsonSerializer、- JsonDeserializer、- KeyDeserializer、- TypeResolverBuilderおよび- TypeIdResolver)の構成をカスタマイズします。- void- setIndentOutput- (boolean indentOutput) - SerializationFeature.INDENT_OUTPUTオプションのショートカット。- voidフォーマットに使用するデフォルトの- LocaleSE をオーバーライドします。- void指定されたクラスまたはインターフェースを補強するために使用するミックスインアノテーションを追加します。- void- setModules- (ListSE<Module> modules) - ObjectMapperに登録するモジュールの完全なリストを設定します。- final void- setModulesToInstall- (ClassSE<? extends Module>... modules) - ObjectMapperに登録する 1 つ以上のモジュールをクラス(または XML のクラス名)で指定します。- void- setObjectMapper- (ObjectMapper objectMapper) 使用する- ObjectMapperインスタンスを設定します。- void- setPropertyNamingStrategy- (PropertyNamingStrategy propertyNamingStrategy) - PropertyNamingStrategyを指定して、- ObjectMapperを構成します。- void- setSerializationInclusion- (com.fasterxml.jackson.annotation.JsonInclude.Include serializationInclusion) 直列化のカスタム包含戦略を設定します。- void- setSerializers- (JsonSerializer<?>... serializers) カスタムシリアライザーを構成します。- void- setSerializersByType- (MapSE<ClassSE<?>, - JsonSerializer<?>> serializers) 指定された型のカスタムシリアライザーを構成します。- void- setSimpleDateFormat- (StringSE format) - SimpleDateFormatSE を使用して日付 / 時刻形式を定義します。- void- setTimeZone- (TimeZoneSE timeZone) フォーマットに使用するデフォルトの- TimeZoneSE をオーバーライドします。
- コンストラクターの詳細- Jackson2ObjectMapperFactoryBeanpublic Jackson2ObjectMapperFactoryBean()
 
- メソッドの詳細- setObjectMapper使用する- ObjectMapperインスタンスを設定します。設定しない場合、- ObjectMapperはデフォルトのコンストラクターを使用して作成されます。
- setCreateXmlMapperpublic void setCreateXmlMapper- (boolean createXmlMapper) true に設定し、カスタム- ObjectMapperが設定されていない場合、デフォルトのコンストラクターを使用して- XmlMapperが作成されます。- 導入:
- 4.1
 
- setFactory- ObjectMapperインスタンスの作成に使用される- JsonFactoryを定義します。- 導入:
- 5.0
 
- setDateFormat指定された- DateFormatSE で日付 / 時刻の形式を定義します。- メモ: このプロパティを設定すると、Jackson のスレッドセーフルールに従って、公開された - ObjectMapperが非スレッドセーフになります。
- setSimpleDateFormat- SimpleDateFormatSE を使用して日付 / 時刻形式を定義します。- メモ: このプロパティを設定すると、Jackson のスレッドセーフルールに従って、公開された - ObjectMapperが非スレッドセーフになります。
- setLocaleフォーマットに使用するデフォルトの- LocaleSE をオーバーライドします。使用されるデフォルト値は- Locale.getDefault()です。- 導入:
- 4.1.5
 
- setTimeZoneフォーマットに使用するデフォルトの- TimeZoneSE をオーバーライドします。使用されるデフォルト値は UTC です(ローカルタイムゾーンではありません)。- 導入:
- 4.1.5
 
- setAnnotationIntrospectorシリアライゼーションとデシリアライゼーションの両方に- AnnotationIntrospectorを設定します。
- setPropertyNamingStrategy- PropertyNamingStrategyを指定して、- ObjectMapperを構成します。- 導入:
- 4.0.2
 
- setDefaultTypingJackson のデフォルトの入力に使用する- TypeResolverBuilderを指定します。- 導入:
- 4.2.2
 
- setSerializationInclusionpublic void setSerializationInclusion- (com.fasterxml.jackson.annotation.JsonInclude.Include serializationInclusion) 直列化のカスタム包含戦略を設定します。- 関連事項:
- JsonInclude.Include
 
 
- setFilters- @JsonFilterアノテーション付き POJO をサポートするために使用するグローバルフィルターを設定します。
- setMixIns指定されたクラスまたはインターフェースを補強するために使用するミックスインアノテーションを追加します。- パラメーター:
- mixIns- アノテーションがキーとして効果的にオーバーライドされるターゲットクラス(またはインターフェース)と、アノテーションが値としてターゲットのアノテーションに「追加」されるミックスインクラス(またはインターフェース)を持つエントリのマップ。
- 導入:
- 4.1.2
- 関連事項:
 
- setSerializersカスタムシリアライザーを構成します。各シリアライザーは、- JsonSerializer.handledType()によって返される型用に登録されますが、- nullであってはなりません。
- setSerializersByType指定された型のカスタムシリアライザーを構成します。
- setDeserializersカスタムデシリアライザーを構成します。各デシリアライザは、- JsonDeserializer.handledType()によって返される型に対して登録されますが、- nullであってはなりません。- 導入:
- 4.3
- 関連事項:
 
- setDeserializersByType指定された型のカスタムデシリアライザーを構成します。
- setAutoDetectFieldspublic void setAutoDetectFields- (boolean autoDetectFields) - MapperFeature.AUTO_DETECT_FIELDSオプションのショートカット。
- setAutoDetectGetterSetterpublic void setAutoDetectGettersSetters- (boolean autoDetectGettersSetters) 
- setDefaultViewInclusionpublic void setDefaultViewInclusion- (boolean defaultViewInclusion) - MapperFeature.DEFAULT_VIEW_INCLUSIONオプションのショートカット。- 導入:
- 4.1
 
- setFailOnUnknownPropertiespublic void setFailOnUnknownProperties- (boolean failOnUnknownProperties) - DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIESオプションのショートカット。- 導入:
- 4.1.1
 
- setFailOnEmptyBeanspublic void setFailOnEmptyBeans- (boolean failOnEmptyBeans) - SerializationFeature.FAIL_ON_EMPTY_BEANSオプションのショートカット。
- setIndentOutputpublic void setIndentOutput- (boolean indentOutput) - SerializationFeature.INDENT_OUTPUTオプションのショートカット。
- setDefaultUseWrapperpublic void setDefaultUseWrapper- (boolean defaultUseWrapper) ラッパーがインデックス付き(リスト、配列)プロパティに使用されるかどうかを定義します(既定では使用されません(- XmlMapperのみに適用されます))。- 導入:
- 4.3
 
- setFeaturesToEnable有効にする機能を指定します。
- setFeaturesToDisable無効にする機能を指定します。
- setModules- ObjectMapperに登録するモジュールの完全なリストを設定します。- メモ: これが設定されている場合、モジュールの検出は行われません -Jackson でも Spring でもありません( - setFindModulesViaServiceLoader(boolean)を参照)。結果として、ここで空のリストを指定すると、あらゆる種類のモジュール検出が抑制されます。- これまたは - setModulesToInstall(java.lang.Class<? extends com.fasterxml.jackson.databind.Module>...)の両方ではなく、いずれかを指定します。- 導入:
- 4.0
- 関連事項:
 
- setModulesToInstall- ObjectMapperに登録する 1 つ以上のモジュールをクラス(または XML のクラス名)で指定します。- ここで指定されたモジュールは、Spring による JSR-310 および Joda-Time の自動検出、または Jackson によるモジュールの検出( - setFindModulesViaServiceLoader(boolean)を参照)後に登録され、最終的にそれらの構成をオーバーライドできます。- これまたは - setModules(java.util.List<com.fasterxml.jackson.databind.Module>)の両方ではなく、いずれかを指定します。- 導入:
- 4.0.1
- 関連事項:
 
- setFindModulesViaServiceLoaderpublic void setFindModulesViaServiceLoader- (boolean findModules) クラスパス内の META-INF メタデータに基づいて、Jackson が JDK ServiceLoader を介して使用可能なモジュールを検索するかどうかを設定します。- このモードが設定されていない場合、Spring の Jackson2ObjectMapperFactoryBean 自体は、クラスパス上で JSR-310 および Joda-Time サポートモジュールを見つけようとします。Java 8 および Joda-Time 自体がそれぞれ利用可能である場合。 - 導入:
- 4.0.1
- 関連事項:
 
- setBeanClassLoaderインターフェースからコピーされた説明:- BeanClassLoaderAwareBean- class loaderSE を Bean インスタンスに提供するコールバック。- 通常の Bean プロパティの設定後、ただし - InitializingBean's- InitializingBean.afterPropertiesSet()メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。- 次で指定:
-  インターフェース BeanClassLoaderAwareのsetBeanClassLoader
- パラメーター:
- beanClassLoader- 所有クラスローダー
 
- setHandlerInstantiatorJackson ハンドラー(- JsonSerializer、- JsonDeserializer、- KeyDeserializer、- TypeResolverBuilderおよび- TypeIdResolver)の構成をカスタマイズします。- 導入:
- 4.1.3
- 関連事項:
 
- setApplicationContextJackson ハンドラー(- JsonSerializer、- JsonDeserializer、- KeyDeserializer、- TypeResolverBuilder、- TypeIdResolver)をオートワイヤーするために、ビルダー- ApplicationContextを設定します。- 次で指定:
-  インターフェース ApplicationContextAwareのsetApplicationContext
- パラメーター:
- applicationContext- このオブジェクトによって使用される ApplicationContext オブジェクト
- 導入:
- 4.1.3
- 関連事項:
 
- afterPropertiesSetpublic void afterPropertiesSet()インターフェースからコピーされた説明:- InitializingBeanすべての Bean プロパティを設定し、- BeanFactoryAware、- ApplicationContextAwareなどを満たした後、包含- BeanFactoryによって呼び出されます。- このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。 - 次で指定:
-  インターフェース InitializingBeanのafterPropertiesSet
 
- getObjectシングルトン ObjectMapper を返します。- 次で指定:
-  インターフェース FactoryBean<ObjectMapper>のgetObject
- 戻り値:
- Bean のインスタンス (nullにすることができます)
- 関連事項:
 
- getObjectTypeインターフェースからコピーされた説明:- FactoryBeanこの FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合は- nullを返します。- これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。 - シングルトンオブジェクトを作成している実装の場合、このメソッドはシングルトンの作成を可能な限り回避しようとします。むしろ、事前に型を推定する必要があります。プロトタイプの場合、ここで意味のある型を返すこともお勧めします。 - このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。 - 注意 : オートワイヤーは、ここで - nullを返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。- 次で指定:
-  インターフェース FactoryBean<ObjectMapper>のgetObjectType
- 戻り値:
-  この FactoryBean が作成するオブジェクトの型、または呼び出し時に不明な場合は null
- 関連事項:
 
- isSingletonpublic boolean isSingleton()インターフェースからコピーされた説明:- FactoryBeanこのファクトリによって管理されるオブジェクトはシングルトンですか? つまり、- FactoryBean.getObject()は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?- 注意 : FactoryBean がシングルトンオブジェクトを保持することを示す場合、 - getObject()から返されたオブジェクトは所有 BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、- trueを返さないでください。- FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。 - 注意 : - falseを返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張- SmartFactoryBeanインターフェースの実装は、- SmartFactoryBean.isPrototype()メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンな- FactoryBean実装は、- isSingleton()実装が- falseを返す場合、常に独立したインスタンスを返すと単純に想定されます。- FactoryBeanは通常シングルトンインスタンスを管理するため、デフォルトの実装では- trueが返されます。- 次で指定:
-  インターフェース FactoryBean<ObjectMapper>のisSingleton
- 戻り値:
- 公開されたオブジェクトがシングルトンかどうか
- 関連事項: