/ / XML設定を使用してMappingJackson2HttpMessageConverterでカスタムプロパティの命名方法を設定する方法 - java、xml、春

XML Configを使用してMappingJackson2HttpMessageConverterでカスタムプロパティ命名戦略を設定するには? - java、xml、spring

のカスタム命名方法を定義したいjson私はspring-config.xmlで異なる命名方法を設定しようとしています。私はカスタムオブジェクトマッパーを持つメッセージコンバータとしてMappingJackson2HttpMessageConverterを追加しました:

<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.insta.hms.common.ObjectHttpMessageConverter" />
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="jacksonObjectMapper" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

そして私はここでJacksonMessageConvertorのためのオブジェクトマッパーを定義しようとしています:

<bean id="jacksonObjectMapper" class ="com.fasterxml.jackson.databind.ObjectMapper">
<property name = "PropertyNamingStrategy" value = "PropertyNamingStrategy.LOWER_CASE" />
</bean>

これはうまくいきません。 Springのコメント: "PropertyNamingStrategy"プロパティの "java.lang.String"型の値を "com.fasterxml.jackson.databind.PropertyNamingStrategy"型に変換することはできない

だから私の最終的な目的は、propertyNamingStrategyの "value"を、propertyNamingStrategyを実装する私のカスタムクラスに置き換えることです。

私はXML設定を使用してこれを設定するのに助けが必要です。

回答:

回答№1は0

プロパティを割り当てたとき value = "PropertyNamingStrategy.LOWER_CASE" Springはそれを文字列として評価します。必要なものは

<bean id="jacksonObjectMapper" class ="com.fasterxml.jackson.databind.ObjectMapper">
<property name = "propertyNamingStrategy" value = "#{T(com.fasterxml.jackson.databind.PropertyNamingStrategy).LOWER_CASE}" />
</bean>

また、これに対する答えによると 質問次のことも可能です。

<bean id="jacksonObjectMapper" class ="com.fasterxml.jackson.databind.ObjectMapper">
<property name = "propertyNamingStrategy" value = "LOWER_CASE" />
</bean>

回答№2の場合は0

セクションC.2.2.1の下の3番目のコードブロックを見る ここに見つかりました (property staticField)名前は完全修飾名である必要があります。