Mapstruct 生成用于依赖注入的构造函数

时间:2021-03-08 21:18:54

标签: java mapstruct

我正在尝试在 MapStruct 中生成一个实现,它将为我创建一个构造函数,我可以将其用于基于构造函数的依赖注入。我了解到我不能在映射器定义中使用构造函数注入(见下文),但是我如何使它生成的类有一个?

我在下面尝试过:

@Mapper(componentModel = "spring", uses = Dependency.class, injectionStrategy = InjectionStrategy.CONSTRUCTOR)
public abstract class MapStructTest {
private Dependency dependency;

@Mapping(source = "field", target "target")
@Mapping(target = "target2", ignore = true)
@AfterMapping
public final void runAfter() {
//dostuff for target2
    }
}

没有成功。我的类已生成,看起来不错,只是没有构造函数。我如何定义我的映射器,以便我获得一个可以在实现中使用的构造函数?

最好的问候, 瑞典王子

1 个答案:

答案 0 :(得分:1)

MapStruct 不支持为抽象类调用构造函数。你必须有一个默认的空构造函数。

为了注入 Dependency,您可以在字段上使用 @Autowired 或使用 @Autowired 添加 setter