Рассмотрим это application.yml
:
shapes:
- type: "square"
side: 4
- type: "circle"
radius: 6
со следующей иерархией Java:
public abstract class Shape {
private String type;
...
}
public class Square extends Shape {
private float side;
...
}
public class Circle extends Shape {
private float radius;
...
}
Использование базового класса в @ConfigurationProperties
классе не работает:
@Configuration
@ConfigurationProperties
public class ShapesProperties {
// BindException
private List<Shape> shapes;
...
}
Поддерживается ли этот сценарий Spring?Я читал о ConversionService
, Binder
, Converter<S, T>
, но я не уверен, что они могут решить эту проблему.