7

在 spring-mvc 3.2.RELEASE 项目中,我想使用 org.springframework.data.repository.support.DomainClassConverter 轻松让我注入实体。

使用此配置时效果很好:

<beans:bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean" />

<beans:bean id="conversionService"
    class="org.springframework.core.convert.support.DefaultConversionService" /> 

<beans:bean
    class="org.springframework.data.repository.support.DomainClassConverter">
    <beans:constructor-arg ref="conversionService" />
</beans:bean>

<annotation-driven conversion-service="conversionService" />

但是随后 Spring 没有加载用于处理 Joda 时间类型的格式化程序,并且我得到“无法将 java.lang.String 类型的属性值转换为所需的属性类型 org.joda.time.LocalDate”

仅使用

<annotation-driven/>

Joda 转换有效,但实体注入无效。

你如何把它连接起来,这样两者都可以工作?

4

1 回答 1

4

不确定这是否回答了问题,但我遇到了类似的问题,这就是我解决它的方法。

我使用文档实现了自定义转换器和转换服务

<bean id="conversionService"
  class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <list>
            <bean class="example.MyCustomConverter"/>
        </list>
    </property>
</bean>

结果是@NA 所描述的 - 这失去了默认的 joda 时间支持,并且不相关控制器中的以下定义不再有效

@PathVariable(value="day") @DateTimeFormat(pattern=DATE_FORMAT) LocalDate date

解决方案不是使用org.springframework.context.support.ConversionServiceFactoryBean,而是我开始使用org.springframework.format.support.FormattingConversionServiceFactoryBean

于 2013-09-03T17:31:30.123 回答