Класс конфигурации Springboot для не защищенных типов вложенных свойств - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь использовать вложенные свойства весенней загрузки для безопасной загрузки файла конфигурации yaml.Я хотел бы легко получить доступ к свойствам из конфигурационного файла на основе профиля.

Я использую аннотацию lombok @Data, чтобы избавиться от кода котельной пластины.Мне кажется, это правильное определение класса, но оно не работает. Выходные данные, которые я могу видеть:

ConfigReader(services=[ConfigReader.Services(name=some-service, baseUri=https://xxxxxx, authorization=xxx, resource=null)], userServices=null, contentType=application/json)
content-type: "application/json"
services:
  -
    name: some-service
    baseUri: 'https://xxxxxx'
    authorization: 'xxx'
    resource:
      login: 'login'

user-service:
  -
    name: someother-service
    baseUri: 'https://xxxxx'
    authorization:
      - password: "x"
      - username: "x"
  -
    name: someanother-service
    baseUri: 'https://xxxxx'
    authorization:
      - password: "x"
      - username: "x"
@ConfigurationProperties
@Configuration
@Component
@Data
public class ConfigReader {

    private List<Services> services;
    private List<UserServices> userServices;
    private String contentType;

    @Data
    static class Services {
        private String name;
        private String baseUri;
        private String authorization;
        private Resource resource;

        @Data
        static class Resource {
            private String resourceName;
        }
    }

    @Data
    static class UserServices {
        private String name;
        private String baseUri;
        private Authorization authorization;

        @Data
        static class Authorization {
            private String userName;
            private String password;
        }
    }
}

Хотите легко прочитать эти свойства из файла yaml на основе выбранного профиля.

...