簡體   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