为了账号安全,请及时绑定邮箱和手机立即绑定

控制通过 Kubernetes 部署的 POD 的主机名

控制通过 Kubernetes 部署的 POD 的主机名

慕容森 2023-03-31 15:08:22
@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()不是检索主机名的正确方法


查看完整回答
反对 回复 2023-03-31
  • 1 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信