<code>@Data
@ConditionalOnProperty(name="config_type", havingValue="configA")
class ConfigA {
private String abc;
private String def;
private String ghi;
private String jkl;
private String mno;
private String pqr;
}
@Data
@ConditionalOnProperty(name="config_type", havingValue="configB")
public class ConfigB {
private String abc;
private String def;
private String ghi;
private String jkl;
private String mno;
private String pqr;
private List<String> list;
private Map<String,String> map;
}
</code>
<code>@Data
@ConditionalOnProperty(name="config_type", havingValue="configA")
class ConfigA {
private String abc;
private String def;
private String ghi;
private String jkl;
private String mno;
private String pqr;
}
@Data
@ConditionalOnProperty(name="config_type", havingValue="configB")
public class ConfigB {
private String abc;
private String def;
private String ghi;
private String jkl;
private String mno;
private String pqr;
private List<String> list;
private Map<String,String> map;
}
</code>
@Data
@ConditionalOnProperty(name="config_type", havingValue="configA")
class ConfigA {
private String abc;
private String def;
private String ghi;
private String jkl;
private String mno;
private String pqr;
}
@Data
@ConditionalOnProperty(name="config_type", havingValue="configB")
public class ConfigB {
private String abc;
private String def;
private String ghi;
private String jkl;
private String mno;
private String pqr;
private List<String> list;
private Map<String,String> map;
}
What is the best abstraction way in this case for common fields ? abstract class or interface
Info: Based on some input parameter, config of only one class gets loaded. Either ConfigA or ConfigB.