尝试在 spring boot 中访问模型中的 Conversion Control,没有成功。

@Component 
public class CityHelperService  { 
 
    @Autowired 
    ConversionService conversionService;// = ConversionServiceFactory.registerConverters(); 
 
    public City toEntity(CityDTO dto){ 
        City entity = conversionService.convert(dto, City.class); 
        return entity; 
    } 
 
    public CityDTO toDTO(City entity){ 
        CityDTO dto = conversionService.convert(entity, CityDTO.class); 
        return dto; 
    } 
} 

它显示以下错误:

Injection of autowired dependencies failed; 
nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.lumiin.mytalk.model.CityModel com.lumiin.mytalk.controllers.CityController.cityModel; 
nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cityModel' defined in file : Unsatisfied dependency expressed through constructor argument with index 1 of type [com.lumiin.mytalk.dao.CityHelperService]: : Error creating bean with name 'cityHelperService': Injection of autowired dependencies failed; 
nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.core.convert.ConversionService com.lumiin.mytalk.dao.CityHelperService.conversionService; 
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.core.convert.ConversionService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}; 
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cityHelperService': Injection of autowired dependencies failed; 
nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.core.convert.ConversionService com.lumiin.mytalk.dao.CityHelperService.conversionService; 
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.core.convert.ConversionService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 

请您参考如下方法:

显然没有可用的 ConversionService bean,根据最后一个嵌套异常判断:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.core.convert.ConversionService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. 

查看 Spring documentation表明,您应该声明一个 ConversionService bean。在 XML 配置中,它看起来像这样:

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

并且由于您使用的是 Spring Boot,我假设您正在以编程方式创建上下文,因此您应该创建一个用 @Bean 注释的方法,它返回一个 ConverstionService , 像这样 ( explained here ):

@Bean(name="conversionService") 
public ConversionService getConversionService() { 
    ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean(); 
    bean.setConverters(...); //add converters 
    bean.afterPropertiesSet(); 
    return bean.getObject(); 
} 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!