我有一些带有以下代码的映射器:
import org.mapstruct.Mapper;
import org.mapstruct.MappingConstants;
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
public interface DiaryPageMapper {
DiaryPageEntity to(DiaryPageDTO diaryPageDTO);
DiaryPageDTO from(DiaryPageEntity diaryPageEntity);
}
我的控制器和服务使用 @Autowired 依赖注入注释调用这些映射器,例如:
@Service
@AllArgsConstructor
@NoArgsConstructor
public class DiaryPageService {
@Autowired
DiaryPageRepository diaryPageRepository;
@Autowired
DiaryPageMapper diaryPageMapper;
}
这是我在 build.gradle 中的依赖项:
implementation 'org.mapstruct:mapstruct:1.6.0'
implementation 'org.mapstruct:mapstruct-processor:1.6.2'
构建应用程序时,主要测试给出以下错误:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'library.booklet.mapper.DiaryPageMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1880)
at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1406)
at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
at app//org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:785)
... 56 more
我该如何解决这个问题?
我尝试清理项目并清理缓存并再次重新启动它,然后我检查了构建文件夹以查看它是否创建了bean,但它没有生成bean。
有人帮忙。导入mapstruct-processor的问题是这个:
annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.2'