2017-12-25 4 views
0

Ich habe einen Mapper sein sollte der Feder Komponente Klasse und normale Klasse für konvertieren Felder verwenden.wie Federkomponente und normale Klasse zusammen in mapstruct verwenden?

Dieser Mapper in folgenden:

@Mapper(componentModel = "spring", uses = { ImagesConverter.class, DateTimeConvertor.class, IntEnumConverter.class, 
    DownloadModelHelper.class }, nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT) 
public interface PictureMapper { 
PictureMapper TRANSLATOR = Mappers.getMapper(PictureMapper.class); 

@Mappings({ @Mapping(source = "picture.img", target = "downloadModel"), 
     @Mapping(source = "picture.id", target = "pictureId"), 
     @Mapping(source = "galleryPicture.id", target = "galleryPictureID") }) 
PictureModel entityToModel(Picture entity); 

@Mapping(source = "pictureId", target = "picture") 
Picture modelToEntity(PictureModel model); 

List<PictureModel> entitiesToModels(List<Picture> entityList); 

List<Picture> modelsToEntities(List<PictureModel> modelList); 

}

ImagesConverter und Datetimeconverter ist federKomponentenKlasse Verwendung von @Component sein.

aber IntEnumConverter und DownloadModelHelper ist normale Klasse.

wenn Startfeder Boot folgende Fehlermeldung erhalten:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pictureMapperImpl': Unsatisfied dependency expressed through field 'downloadModelHelper': No qualifying bean of type [ir.pt.discountnetwork.commons.tools.DownloadModelHelper] found for dependency [ir.pt.discountnetwork.commons.tools.DownloadModelHelper]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations 

wie Federkomponente zu verwenden, und die normale Klasse mit zusammen in mapstruct?

+0

Ich denke DownloadModelHelper muss auch Frühling Komponente oder Bohne sein, aber ist das so? –

+0

DownloadModelHelper ist normale Klasse in einem anderen Projekt.Kann keine @ Komponent Annotation zu dieser Klasse –

+0

hinzufügen und Sie können dies in Ihrer Konfiguration als @bean downloadModelHelper.class verwenden –

Antwort

0

Vielleicht können Sie das nicht tun. Spring initialisiert Java-Klassen. Entweder Sie setzen es in den Federcontainer mit Hilfe der Komponente oder manuell initialisieren.

Verwandte Themen