Переключение функции секундомера с использованием конфигурации - PullRequest
0 голосов
/ 30 мая 2018

Можно ли каким-либо образом управлять секундомером пакета утилит Spring, используя конфигурацию в application.yml или application.properties, так что я могу включать (включать / выключать) эту функцию, если и когда это необходимо, на основе?

PS Мне известно, что в документации говорится, что она не предназначена для поточной защиты, а также не предназначена для использования в производстве.

1 Ответ

0 голосов
/ 30 мая 2018

Вы всегда можете управлять объектом с помощью пружины, а также сделать его условным, так как этот объект должен быть создан или нет.

Сделайте что-то вроде:

    public class StopWatchOnOffCondition implements Condition {

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata arg1) {

        return !"false".equalsIgnoreCase(context.getEnvironment().getProperty("stopwatch.enabled"));
}

И когда вы создаетеbean-компонент для StopWatch вы можете сделать что-то вроде:

    @Conditional(value = { StopWatchOnOffCondition.class })
    @Service
    public class StopWatchService { ...
}

Свойство: stopwatch.enabled будет находиться в вашем файле applicationaton.properties.

Подробнее о @Conditional здесь

...