如何在springboot中在ConversionService中自动接线

尝试在springboot中访问模型中的ConversionControl,不走运。

@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文档可以发现,您应该声明一个ConversionServicebean。在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

@Bean(name="conversionService")

public ConversionService getConversionService() {

ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();

bean.setConverters(...); //add converters

bean.afterPropertiesSet();

return bean.getObject();

}

以上是 如何在springboot中在ConversionService中自动接线 的全部内容, 来源链接: utcz.com/qa/429031.html

回到顶部