我正在尝试引入一个自定义转换器来转换对象集 --> 对象。在我的网络层中,我将使用域对象键获得逗号 (',') 分隔的字符串。
例如
如果数据库记录如下表名称所示
身份证名称
1个
2 乙
我有表的关联域对象。从网络层我得到 1,2 字符串,它作为我的域对象数组绑定到我的 DTO。
在这种情况下,我看到默认的 Spring 转换器字符串到对象数组优先于我的自定义转换器,并导致使用空域对象创建我的域对象数组。
但是,我希望执行我的转换器,它根据来自 DB 的 ID 获取域对象。
我如何强制我的转换器首先执行到 Spring 默认转换器。
PS:我将转换目标对象设为 Object 而不是我的 Domain 对象,因为我希望它是通用的并且应该适用于我的所有域对象。
我没有使用 mvc:annotation-driven,我们根据需要手动扩展了它。
<context:component-scan base-package="com.shivaji" use-default-filters="false">
<context:include-filter expression="org.springframework.stereotype.Controller" type="annotation" />
</context:component-scan>
<bean class="com.shivaji.mvc.request.shivajiRequestMappingHandlerAdapter">
<property name="webBindingInitializer">
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="conversionService" ref="applicationConversionService" />
<property name="validator" ref="validator" />
</bean>
</property>
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean class="org.springframework.http.converter.StringHttpMessageConverter" />
<bean class="org.springframework.http.converter.FormHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="conversionServiceExposingInterceptor" class="org.springframework.web.servlet.handler.ConversionServiceExposingInterceptor">
<constructor-arg ref="applicationConversionService" />
</bean>
<bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean" id="applicationConversionService">
<property name="converters">
<set>
<bean class="com.shivaji.converter.DateToStringConverter">
<property name="pattern" value="dd-MM-yyyy HH:mm:ss.SSSSSS" />
</bean>
</set>
</property>
</bean>
<!-- Support auto conversion -->
<bean class="com.shivaji.converter.auto.AutoEntityToIdConverterBeanFactory" />
<bean class="com.shivaji.converter.auto.AutoIdToEntityConverterBeanFactory" />
<bean class="org.springframework.mapping.support.ConversionMapperFactory" id="conversionMapperFactory" autowire="byType" />