Следующий код выдает NPE, когда я не указываю значение для acme.security.roles
:
@ConstructorBinding
@ConfigurationProperties("acme")
public class AcmeProperties {
private final Security security;
public AcmeProperties(Security security) {
this.security = security;
}
public Security getSecurity() {
return security;
}
public static class Security {
private final List<String> roles;
public Security(@DefaultValue("USER") List<String> roles) {
this.roles = roles;
}
public List<String> getRoles() {
return roles;
}
}
}
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(AcmeProperties.class)
public class MyConfiguration {
@Bean HttpClientConnectionManager httpClientConnectionManager(AcmeProperties acmeProperties) {
Security security = acmeProperties.getSecurity();
security.getRoles(); // throws NPE
return new PoolingHttpClientConnectionManager();
}
}
Как правильно создать экземпляр пружинной загрузки Security
объект со значением по умолчанию roles
ценность? Должен ли я использовать @DefaultValue
и SPEL как-нибудь, чтобы он работал?