Java 在mapstruct中映射时,是否可以从属性文件加载源值和目标值?

Java 在mapstruct中映射时,是否可以从属性文件加载源值和目标值?,java,spring,mapstruct,Java,Spring,Mapstruct,我想创建对象到对象的绑定,所以我选择MapStructAPI。我的要求是,在构建应用程序时,不要将源字符串和目标字符串都保存在Java类中,而是从不同的文件加载源字符串和目标字符串,并将它们注入到Mapper类中 @Mapper public interface SimpleSourceDestinationMapper { @Mappings({ @Mapping(source ="name", target="tgName") }) SimpleDe

我想创建对象到对象的绑定,所以我选择MapStructAPI。我的要求是,在构建应用程序时,不要将源字符串和目标字符串都保存在Java类中,而是从不同的文件加载源字符串和目标字符串,并将它们注入到Mapper类中

@Mapper
public interface SimpleSourceDestinationMapper {
    @Mappings({
        @Mapping(source ="name", target="tgName")

    })
    SimpleDestination sourceToDestination(SimpleSource source);
}
我想从属性文件加载源名称和目标名称

像这样的

@Mapping(source ="${mapstruct.source.name}", target="${mapstruct.destination.name}")

application.properties
mapstruct.source.name=name
mapstruct.destination.name=tgName

据我所知,这是不可能的。MapStruct是一个注释处理器,它分析
@Mapping
注释编译时

此外,注释参数需要真常量。无法从资源包或属性文件解析它们

不确定这是否可行,但你可以考虑编写自己的扩展(处理器)。MapStruct连接处理器。第一个开始并确定应该运行哪些。默认情况下,有一个处理器分析源代码并建立源模型,

MethodRetrievalProcessor
,后面是一个处理器,它建立内部模型,
MapperCreationProcessor
,等等


MapStruct允许在此链中添加自定义处理器。但它需要了解MapStruct的内部工作原理。

据我所知,这是不可能的。MapStruct是一个注释处理器,它分析
@Mapping
注释编译时

此外,注释参数需要真常量。无法从资源包或属性文件解析它们

不确定这是否可行,但你可以考虑编写自己的扩展(处理器)。MapStruct连接处理器。第一个开始并确定应该运行哪些。默认情况下,有一个处理器分析源代码并建立源模型,

MethodRetrievalProcessor
,后面是一个处理器,它建立内部模型,
MapperCreationProcessor
,等等


MapStruct允许在此链中添加自定义处理器。但它需要了解MapStruct内部工作。

请添加一些(psuedo)代码以帮助澄清和解释问题。Hi@AndrewS我添加了psuedo代码。请添加一些(psuedo)代码以帮助澄清和解释问题。Hi@AndrewS我添加了psuedo代码。