Я пытаюсь использовать вложенные свойства весенней загрузки для безопасной загрузки файла конфигурации 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 на основе выбранного профиля.