Springboot不创建mapstruct bean

问题描述 投票:0回答:1

我有一些带有以下代码的映射器:

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。

构建图像

spring-boot dependency-injection autowired mapstruct spring-bean
1个回答
0
投票

有人帮忙。导入mapstruct-processor的问题是这个:

annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.2'
© www.soinside.com 2019 - 2024. All rights reserved.