Способ решить эту проблему - разделить класс на два класса с двумя разными проблемами. При таком решении вы сохраняете созданный класс SystemProperties и дополнительно добавляете другой класс просто для загрузки параметров файла свойств, чтобы сделать их доступными для вашего приложения.
Решение будет следующим:
@ConstructorBinding
@ConfigurationProperties(prefix = "abc")
public class SystemProperties {
private final String test;
public SystemProperties(
String test) {
this.test = test;
}
public String getTest() {
return test;
}
}
Обратите внимание, что я пропустил аннотации @Configuration и @PropertySource.
@Configuration
@PropertySource("classpath:parameter.properties")
public class PropertySourceLoader {
}
Обратите внимание, я просто добавил эти аннотации для нового класса, созданного исключительно для загрузки файла свойств.
Наконец, вы можете добавить @ConfigurationPropertiesScan в ваш основной класс приложения, чтобы включить механизм сопоставления свойств.