[英]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 个选项使其工作。
您可以尝试使用@Profile
注释来注释MyMapper
,我不确定 Spring 是否在继承树和接口中搜索
MapStruct有ModelElementProcessor
它用于添加@Component
注解。 Spring 的一个是SpringComponentModelElementProcessor
。
您可以提供自己的componentModel
(例如spring-dev
),将@Profile
注释添加到生成的映射器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.