@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
提交
取消