/ / Ako nastaviť vlastnú stratégiu pomenovávania vlastností pomocou MappingJackson2HttpMessageConverter pomocou XML Config? - java, xml, jar

Ako nastaviť vlastnú stratégiu pomenovávania nehnuteľností pomocou MappingJackson2HttpMessageConverter pomocou XML Config? - java, xml, jar

Chcem definovať vlastnú stratégiu pomenovávania preJSON. Vo svojom súbore jar-config.xml sa snažím nakonfigurovať inú stratégiu pomenovávania. Pridal som MappingJackson2HttpMessageConverter ako prevodník správ s vlastným mapovačom objektov:

<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>

A tu sa snažím definovať mapovač objektov pre JacksonMessageConvertor:

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

Toto nefunguje; Jar hovorí: Nie je možné previesť hodnotu typu „java.lang.String“ na požadovaný typ „com.fasterxml.jackson.databind.PropertyNamingStrategy“ pre vlastnosť „PropertyNamingStrategy“

Mojím prípadným cieľom je teda nahradiť „hodnotu“ propertyNamingStrategy mojou vlastnou triedou, ktorá implementuje propertyNamingStrategy.

Potrebujem pomoc s konfiguráciou pomocou konfigurácie XML.

odpovede:

0 pre odpoveď č. 1

Keď priradíte nehnuteľnosť value = "PropertyNamingStrategy.LOWER_CASE" Jar ho hodnotí ako reťazec. Potrebujete:

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

Tiež podľa odpovedí na toto otázka, je tiež možné:

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

0 pre odpoveď č. 2

Pri pohľade na tretí blok kódu v oddiele C.2.2.1 nájdete tu (vlastnosť staticField). Mená musia byť plne kvalifikované.