在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 for property”
仅使用
<annotation-driven/>
Joda转换有效,但不是实体注入。
你如何连接它以便它们都能正常工作?
答案 0 :(得分:3)
不确定这是否回答了问题,但我遇到了类似的问题,这就是我解决问题的方法。
实现了自定义转换器和转换服务<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
。