gpt4 book ai didi

spring-boot - MapStruct 不使用 Kotlin 和 Spring Boot Autowiring ,使用 Gradle 构建

转载 作者:行者123 更新时间:2023-12-02 13:01:04 29 4
gpt4 key购买 nike

我的 gradle 文件中有以下部分:

apply plugin: 'kotlin-kapt'
...
compile("org.mapstruct:mapstruct:1.3.0.Final")
kapt("org.mapstruct:mapstruct-processor:1.3.0.Final")

我也在使用 JUnit 5。

我的映射器看起来像:
@Mapper(componentModel = "spring")
interface ModelMapper {
fun convertToDto(forms: Model): DTO

@InheritInverseConfiguration
fun convertToModel(dto: DTO): Model
}

我正在尝试自动连接它,类似于:
@Service
@Transactional
class MyService @Autowired constructor(
private val repository: MyRepository,
private val mapper: ModelMapper
) {
...
}

但是当我尝试运行测试/构建时,我得到一个错误:
...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type '....ModelMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

有谁知道为什么 Spring Boot 不能使用这种设置?

最佳答案

尝试将 Spring 的注释处理器传递给 build.gradle 中的 kapt :

kapt("org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}")
或尝试保留 javac 注释处理器:
kapt {
keepJavacAnnotationProcessors = true
}

关于spring-boot - MapStruct 不使用 Kotlin 和 Spring Boot Autowiring ,使用 Gradle 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57962173/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com