我在application-context.xml中定义了一个应用程序转换服务。
<bean id="applicationConversionService"
class="com.myer.reporting.converter.ApplicationConversionServiceFactoryBean"
p:messageSource-ref="messageSource"/>
我正在尝试将其注入我的其他豆类中。
<bean id="bulletinBarMessageRowMapper"
class="com.myer.reporting.dao.mapper.BulletinBarMessageRowMapper"
scope="prototype"
p:applicationConversionService-ref="applicationConversionService"/>
com.myer.reporting.dao.mapper.BulletinBarMessageRowMapper具有以下属性......
public class BulletinBarMessageRowMapper implements RowMapper<BulletinBarMessage>{
private ApplicationConversionServiceFactoryBean applicationConversionService;
public ApplicationConversionServiceFactoryBean getApplicationConversionService() {
return applicationConversionService;
}
public void setApplicationConversionService(
ApplicationConversionServiceFactoryBean applicationConversionService) {
this.applicationConversionService = applicationConversionService;
}
看起来非常直接,但是因为以下错误而失败......
引起:org.springframework.beans.ConversionNotSupportedException: 无法转换类型的属性值 “org.springframework.format.support.DefaultFormat tingConversionService'到必需的类型 “com.myer.reporting.converter.Applicatio nConversionServiceFactoryBean'用于属性 'applicationConversionService';嵌套ed异常是 java.lang.IllegalStateException:无法转换类型[o rg.springframework.format.support.DefaultFormattingConversionService] 要求d型 [com.myer.reporting.converter.ApplicationConversionServiceFactoryBean] 属性'applicationConversionService':没有匹配的编辑器或 发现转换策略
有人可以告诉我为什么会失败。我查了一些doco,似乎有一些提到Spring为我们自动配置的名为DefaultFormattingConversionService的bean可能会干扰但是我需要更多关于这里出错的信息。
我能想到的唯一可能导致此错误的是我使用...
<mvc:annotation-driven conversion-service="applicationConversionService"/>
感谢
答案 0 :(得分:1)
这很奇怪的是,我没有通过xml注入,而是在我的课程中添加了一个autowire注释,它只是起作用了!
@Autowired
private ApplicationConversionServiceFactoryBean applicationConversionService;