Как исключить класс Spring ConfigurationProperties обратно совместимым способом? - PullRequest
0 голосов
/ 17 июня 2019

Я рефакторинг некоторого устаревшего кода, который использовал очень общие префиксы для своих свойств Spring; как это:

# application.properties
some.property=foobar

Я переименовываю это свойство, чтобы оно стало более значимым.

# application.properties
libraryX.widget=foobar

Пока что я добавил класс ConfigurationProperties для старых значений и пометил их как DeprecatedConfigurationProperty:

@Component
@ConfigurationProperties(prefix = "some")
public class LegacyProperties {

    private String property;

    @DeprecatedConfigurationProperty(reason = "property has been renamed to libraryX.widget", replacement = "libraryX.widget")
    public String getProperty() {
        return property;
    }

    public void setProperty(String property) {
        this.property = property;
    }
}

Вопрос ...

Я бы хотел сделать это изменение обратно совместимым. Как мне добиться, чтобы старое имя свойства прозрачно отображалось на новое имя свойства, чтобы можно было извлечь значение some.property из @Value("${libraryX.setting}")?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...