Не удалось разрешить заполнитель после добавления зависимости spring-boot-admin-starter-client - PullRequest
1 голос
/ 06 марта 2019

В моем приложении есть метод, помеченный @Scheduled(cron="${my.cron.prop}")

У меня нет my.cron.prop в файле свойств, и моя работа просто не запускается, но приложение запускается успешно.

Но когда я добавляю зависимость:

compile ("de.codecentric:spring-boot-admin-starter-client:1.5.7")

Моё приложение не запускается:

Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method 'reportCurrentTime': Could not resolve placeholder 'my.cron.prop' in value "${my.cron.prop}"

Как я могу это исправить?

Ожидаемое поведение - просто не запускаетсяработа в случае, если имущество не предоставлено

Ответы [ 2 ]

2 голосов
/ 06 марта 2019

Я полагаю, ваше приложение не @EnableScheduling, spring-boot-admin-starter-client делает.

Этого можно избежать, указав значение по умолчанию: см. Другой ответ

лучший способ исправить это - использовать выделенный компонент для запуска вашей работы, когда свойство доступно

@Component 
@ConditionalOnProperty( name = "my.cron.prop" )
public class Tasks {

    @Scheduled(cron = "${my.cron.prop}")
    public void task() {
       /*do your suff*/
    }
1 голос
/ 06 марта 2019

Вы можете попробовать что-то вроде этого: @Scheduled(cron="${my.cron.prop:0 0 0 1 1 ? 2090}")

В этом случае, если свойство не может быть найдено, Spring будет использовать предоставленное вами значение по умолчанию (запуск в 2090 году в моем примере).

...