Как перезагрузить конфигурационный объект во время выполнения весной MVC - PullRequest
0 голосов
/ 06 июня 2019

У меня есть класс конфигурации FTPSchedullingConfiguration, который инициализируется при создании экземпляра приложения и получает данные из таблицы для запуска планировщика по заданному выражению планирования.

А также мой вопрос не является дублирующимся как Перезарядка / Обновление SpringКонфигурационный файл без перезапуска контейнера сервлета вот так, потому что у меня нет никакого XML-файла, мое приложение основано на аннотации, и здесь все классы скомпилированы в формате .class, поэтому мы не можем изменять любой код во время выполнения.

@Configuration
@EnableScheduling
public class FTPSchedullingConfiguration {

@Autowired
private FTPTransferServiceInterface ftpTransferServiceInterface;

@Bean
public String getCronFTPTransferValue()
{
    return ftpTransferServiceInterface.getFTPTransferById((long) 1).getTransferCroneTime();
}

 @Scheduled(cron="#{@getCronFTPTransferValue}")
 public void ftpTransfer() {
    ftpTransferServiceInterface.transferFTPRecording();
 }
}

Но когда я изменяю расписание выражения таблицы, то по расписанию не меняется.если я перезагружаю сервер, то меняю загрузку Expression.

с помощью updateFTP (),

@RequestMapping(value= {"/updateFTPTransfer"})
private String updateFTP(...){
  ftpTransferServiceInterface.updateFTP(ftpDomain);
    //here i want to change the value of @Scheduled 
}

моя фактическая потребность, например, когда я изменял значение Expression в таблице на updateFTP(...){...} в то время, также мойзначение планировщика изменено (ИЛИ) Обновлен класс FTPSchedullingConfiguration.

Заранее спасибо.

...