Я пытаюсь параметризовать выражение cron, которое в настоящее время используется для выражения Spring @Scheduled. Все остальные переменные, поступающие из конфигурации клиента, похоже, правильно загружены для других переменных, но Spring, похоже, не может что-либо уловить в выражении cron.
Я пробовал множество разных способов делать это, но, похоже, ничего не работает. Выдача ошибок, таких как
java.lang.IllegalStateException: Encountered invalid @Scheduled method 'importData': Could not resolve placeholder 'cronExpression' in value "${cronExpression}"
Я пробовал вызывать выражение прямо из файла конфигурации
@Scheduled(cron = "${my.cron.expression}")
public void importData() {
с помощью @Qualifier и давая ему прямое строковое имя
@Qualifier("cronExpression") String cronExpression
this.cronExpression = cronExpression
...
@Scheduled(cron = "${cronExpression}")
public void importData() {
, но все они по-прежнему возвращают указанное выше сообщение об ошибке
В классе конфигурации клиента я сейчас пытаюсь импортировать переменную следующим образом:
@Bean
@Qualifier("cronExpression")
public String cronExpression(@Value("${my.cron.expression}") String cronExpression) {
return cronExpression;
}
Помимо имен, это это код, который я использую, который все еще выдает неразрешенную ошибку заполнителя: Свойства:
my:
cron:
expression: 0 0 4-6 * * *
ClientConfig:
@Qualifier("cronExpression")
public String cronExpression(@Value("${my.cron.expression}") String cronExpression) {
return cronExpression;
}
Планировщик:
private final String cronExpression;
...
@Qualifier("cronExpression") String cronExpression
...
this.cronExpression = cronExpression
...
@Scheduled(cron = "${cronExpression}")