我想创建对象到对象绑定,所以我选择Map struct API。我的要求是,我不希望将源字符串和目标字符串都保留在Java类中,而是要在构建应用程序时从“不同文件”中加载源字符串和目标,并注入到Mapper类中。
@Mapper
public interface SimpleSourceDestinationMapper {
@Mappings({
@Mapping(source ="name", target="tgName")
})
SimpleDestination sourceToDestination(SimpleSource source);
}
我想从属性文件中加载源名称和目标的tgName。
类似的东西
@Mapping(source ="${mapstruct.source.name}", target="${mapstruct.destination.name}")
application.properties
mapstruct.source.name=name
mapstruct.destination.name=tgName
答案 0 :(得分:0)
据我所知这是不可能的。 MapStruct是注释处理器,它分析os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard"
注释的编译时间。
此外,注释参数还需要真常量。您无法从资源束或属性文件中解析它们。
不确定这是否行得通,但是您可以考虑编写自己的扩展程序(处理器)。 MapStruct连接处理器。第一个开始,并确定应运行哪个。默认情况下,有一个处理器可以分析源代码并构建源模型,@Mapping
,然后是一个处理器可以构建内部模型MethodRetrievalProcessor
,等等。
MapStruct允许在此链中添加自定义处理器。但这需要了解MapStruct的内部工作原理。