のカスタム命名方法を定義したい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)名前は完全修飾名である必要があります。