Immutable @ConfigurationProperties
É possível ter campos imutáveis (finais) com o Spring Boot@ConfigurationProperties
anotação? Exemplo abaixo
@ConfigurationProperties(prefix = "example")
public final class MyProps {
private final String neededProperty;
public MyProps(String neededProperty) {
this.neededProperty = neededProperty;
}
public String getNeededProperty() { .. }
}
Abordagens que tentei até agora:
Criando um@Bean
doMyProps
classe com dois construtoresFornecendo dois construtores: vazio e comneededProperty
argumentoO bean é criado comnew MyProps()
Resultados no campo sendonull
Usando@ComponentScan
e@Component
para fornecer oMyProps
feijão.Resulta emBeanInstantiationException
->NoSuchMethodException: MyProps.<init>()
A única maneira de fazê-lo funcionar é fornecendo getter / setter para cada campo não final.