gpt4 book ai didi

java - 如何使用 XML Config 通过 MappingJackson2HttpMessageConverter 设置自定义属性命名策略?

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:29 29 4
gpt4 key购买 nike

我想为 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 的自定义类替换 propertyNamingStrategy 的“值”。

我需要使用 XML 配置来配置它的帮助。

最佳答案

当您分配属性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>

另外,根据这个question的答案,以下也是可能的:

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

关于java - 如何使用 XML Config 通过 MappingJackson2HttpMessageConverter 设置自定义属性命名策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43115184/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com