Полиморфный @ConfigurationProperties - PullRequest
0 голосов
/ 16 февраля 2019

Рассмотрим это 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>, но я не уверен, что они могут решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...