java - 希望根据 Spring Profile 编码不同的 POJO 字段集

标签 java xml spring jaxb profile

我有一个具有以下字段的 POJO Details 。 1. 字符串名称 2. 字符串添加 3.串电话 。 对于配置文件“x”,前两个字段应在 XML 中编码(marshal),而对于其他配置文件,第一个和最后一个字段应在 XML 中编码(marshal)。 注意:对于任何配置文件,任何字段都不会为空。

最佳答案

我觉得最好不要打扰 Marshaller。扩展和自定义编码器以满足每个 Spring 配置文件的需求可能很棘手。

如果我们的目标是根据 Spring 配置文件序列化不同的有效负载,我建议可能使用一个转换器/工厂来接收 POJO(具有所有字段)并为特定的数据输出一个数据传输对象 (DTO)轮廓。

除非有另一个最终目标,否则以下方法也许可行。

public class Details { ... }
// essentially a marker interface
public interface MyDto {
}

public class DtoA implements MyDto {
   private String name;
   private String add;
}

public class DtoB implements MyDto {
   private String name;
   private String phone;
}
public interface DtoConverter {
   MyDto convert(Details details);
}

public class DtoConverterA implements DtoConverter { ... }
public class DtoConverterB implements DtoConverter { ... }
@Configuration
public class MyConfiguration {
   @Bean
   @Profile("a")
   public DtoConverter dtoConverterA() {
       return new DtoConverterA();
   }

   @Bean
   @Profile("b")
   public DtoConverter dtoConverterB() {
      return new DtoConverterB();
   }
}

关于java - 希望根据 Spring Profile 编码不同的 POJO 字段集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62147903/

相关文章:

java - 测试空Java对象图的Commons方法?

java - 异常addWorkLog JIRA JAVA REST CLIENT

java - 在 Mac 上的 Java 应用程序中禁用弹出菜单

java - 如何将 .jar 文件添加到 Apache NetBeans 12.0 中的 java 库

c# - C# 中的 XML 构造

不包括 Spring Batch 默认 bean

java - 使用crawler4j进行身份验证

Java 和解析 XML

java - 有没有办法构建 StAX 过滤器链?

java - 事务教程-测试回滚