我正在尝试为转换Set of Object引入自定义转换器 - >宾语。在我的Web层中,我将使用域对象键分隔逗号(',')。
例如
如果DB记录如下表所示
id姓名
1 a
2 b
我有该表的关联域对象。从Web层我得到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" />