/ / Jak ustawić niestandardową strategię nazewnictwa właściwości za pomocą MappingJackson2HttpMessageConverter przy użyciu XML Config? - java, xml, wiosna

Jak ustawić niestandardową strategię nazewnictwa właściwości za pomocą MappingJackson2HttpMessageConverter za pomocą XML Config? - java, xml, wiosna

Chcę zdefiniować niestandardową strategię nazewnictwa dlajson. Próbuję skonfigurować inną strategię nazewnictwa w moim pliku spring-config.xml. Dodałem MappingJackson2HttpMessageConverter jako konwerter komunikatów z niestandardowym programem odwzorowującym obiekty:

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

Próbuję tutaj zdefiniować program odwzorowujący obiekty dla JacksonMessageConvertor:

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

To nie działa; Spring mówi: Nie można przekonwertować wartości typu „java.lang.String” na wymagany typ „com.fasterxml.jackson.databind.PropertyNamingStrategy” dla właściwości „PropertyNamingStrategy”

Moim ostatecznym celem jest zastąpienie wartości „propertyNamingStrategy” moją klasą niestandardową, która implementuje właściwość propertyNamingStrategy.

Potrzebuję pomocy w skonfigurowaniu tego przy użyciu konfiguracji XML.

Odpowiedzi:

0 dla odpowiedzi № 1

Kiedy przypisujesz nieruchomość value = "PropertyNamingStrategy.LOWER_CASE" Spring ocenia go jako String. Potrzebujesz:

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

Zgodnie z odpowiedziami na to pytanie pytanie, możliwe jest również następujące:

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

0 dla odpowiedzi nr 2

Patrząc na trzeci blok kodu w sekcji C.2.2.1 znaleźć tutaj (właściwość staticField). Nazwy muszą być w pełni kwalifikowane.