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ď č. 1Keď 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é.