@Mapper(componentModel = "spring")public interface SourceToTargetMapper { Target map(Source source); @BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.SET_TO_DEFAULT) void update(Source source, @MappingTarget Target target);}整个技巧是定义nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.SET_TO_DEFAULT,但您不能在 @Mapper 注释中定义它。取而代之的是,您必须将它作为参数放在update()方法的 @BeanMapping 注释中。您可以在MapStruct 文档中阅读更多相关信息。第2步:因此,您必须在代码中再执行一项操作并使用刚刚实现的“update()”方法:@Componentpublic class ClassThatUsingMapper { private final SourceToTargetMapper mapper; public Target someMethodToMapObjects(Source source) { Target target = mapper.map(source); mapper.update(source, target) return target; }}所有null 到空 String 的过程都发生在mapper.update(source, target)method 下。为您的项目运行后mvn clean install,您可以检查它的外观以及它在target/generated-sources/annotations/...../SourceToTargetMapperImpl.java文件中的工作方式。
1 回答
慕森王
TA贡献1777条经验 获得超3个赞
HOSTNAME
您可以使用每个容器上存在的env 变量,它只为您提供主机名。
此外,尝试在任何 pod 上执行 env 以查看所有可用变量
kubectl exec <pod-name> env
此处解释了为什么使用InetAddress.getLocalHost().getHostName()
不是检索主机名的正确方法
添加回答
举报
0/150
提交
取消