繁体   English   中英

MapStruct with Spring Boot,使用自定义注解注解生成的类

[英]MapStruct with Spring Boot, annotate generated classes with custom annotation

是否有可能使用自定义注释来注释 MapStruct 生成的类? 目前我使用 MapStruct 和componentModel定义为"spring" ,如:

@Mapper(componentModel = "spring")
public interface MyMapper {}

对于这个接口,类由 MapStruct 生成:

@Component
public class MyMapperImpl implements MyMapper {}

所以我可以很容易地注入它。 我想要做的是用org.springframework.context.annotation.Profile注释来注释生成的类,所以我生成的 bean 只有在定义了特定的配置文件时才会生效,是否有可能注入这样的注释,@ @Profile("dev") ,以某种方式生成类? 我在考虑org.mapstruct.DecoratedWith注释,但我没有让它为我工作

目前官方 API 无法做到这一点。 这个问题类似于mapstruct/mapstruct#1427

但是,您可以尝试使用 2 个选项使其工作。


选项 1(注释 Mapper)

您可以尝试使用@Profile注释来注释MyMapper ,我不确定 Spring 是否在继承树和接口中搜索


选项 2(使用内部 API)

MapStruct有ModelElementProcessor它用于添加@Component注解。 Spring 的一个是SpringComponentModelElementProcessor

您可以提供自己的componentModel (例如spring-dev ),将@Profile注释添加到生成的映射器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM