gpt4 book ai didi

java - MapStruct 与 Spring Boot,使用自定义注释来注释生成的类

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:57 25 4
gpt4 key购买 nike

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

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

对于这个接口(interface),类是由MapStruct生成的:

@Component
public class MyMapperImpl implements MyMapper {}

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

最佳答案

目前官方 API 无法实现此操作。这个问题类似于mapstruct/mapstruct#1427 .

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

<小时/>

选项1(注释Mapper)

你可以尝试用@Profile注解来注解MyMapper,我不确定Spring是否会在继承树和接口(interface)中查找

<小时/>

选项 2(使用内部 API)

MapStruct 具有 ModelElementProcessor它用于添加 @Component 注释。 Spring 的那个是SpringComponentModelElementProcessor .

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

关于java - MapStruct 与 Spring Boot,使用自定义注释来注释生成的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54381689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com