[英]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.