Wie Autowired in ConversionService in springboot
Versuchen auf die ConversionControl im Modell in springboot, kein Glück.
@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;
}
}
Zeigt es die folgende Fehlermeldung:
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)}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anscheinend gibt es keine
ConversionService
bean zur Verfügung, die Beurteilung durch die letzten geschachtelte Ausnahme:Einen Blick in die Spring-Dokumentation verrät, dass Sie sollten erklären, eine
ConversionService
bean. In der XML-Konfiguration würde wie folgt Aussehen:Und da bist du mit Spring Boot, ich nehme an, Sie schaffen den Kontext programmatisch, so sollten Sie erstellen Sie eine Methode annotiert mit
@Bean
gibt eineConverstionService
wie diese (hier erklärt):Converter<City, CityDTO>
, und eine, die die andere Weise herum, dann registrieren Sie sich in derConversionServiceFactoryBean
. Schau dir bitte dieses tutorial: javabeat.net/introduction-to-spring-converters-and-formattersConverstionService
von derConversionServiceFactoryBean
wie im Beispiel oben, einfach nur wieder einConversionServiceFactoryBean
bean und die Feder erledigt den rest für SieNicht völlig einig mit der akzeptierten Antworten, da es ein Standard -
ConverstionService
namensmvcConversionService
so würde man doppelte bean Ausnahme. StattdessenaddConverter
zuFormatterRegistry
, hier ist der link für den Teil der Antwort:Java-Config-äquivalent für conversionService /FormattingConversionServiceFactorybean
Außerdem müssten Sie (in einigen Fällen) zu definieren, um mindestens eine leere
Component
fürConversionService
, so etwas wie unten:Dies ist die Kraft, spring-container um einen Anruf zu initiieren, zu:
mvcConversionService
wird nur vorhanden sein, wenn Sieorg.springframework.boot:spring-boot-starter-web
Abhängigkeit in Ihrem Projekt