目前,我可以使用SpEL
使用String参数,如下所示:
@Autowired
private ParameterService parameterService;
@Scheduled(cron = "#{parameterService.findByCode('cron')}")
它工作正常,但是如果我想要一个长常量,它将不起作用:
@Autowired
private ParameterService parameterService;
@Scheduled(fixedDelay = "#{parameterService.findByCode('fixedDelay')}")
//error: incompatible types: String cannot be converted to long
@Scheduled(fixedDelay = Long.parseLong("#{parameterService.findByCode('fixedDelay')}"))
//error: element value must be a constant expression
所以,如何解决?
而且,我不能给Long,它只接受long
edit:
我经历了许多类似的SpEL
问题,但是有针对我的情况的[[no适用解决方案。
@Scheduled(fixedDelayString = "#{parameterService.findByCode('fixedDelay')}")
@Scheduled(fixedDelayString = "#{parameterService.findByCode('fixedDelay')}"))