是否可以使用自定义注释来注释由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
注释,但没有使它对我有用
答案 0 :(得分:0)
当前使用官方API无法实现。这个问题类似于mapstruct/mapstruct#1427。
但是,您可以尝试使用2个选项来使其正常工作。
您可以尝试使用MyMapper
注释对@Profile
进行注释,我不确定Spring是否在继承树中以及在接口中搜索了
MapStruct具有ModelElementProcessor
,用于添加@Component
批注。用于Spring的是SpringComponentModelElementProcessor
。
您可以提供自己的componentModel
(例如spring-dev
),将@Profile
批注添加到生成的映射器中。