在父抽象类

时间:2016-07-13 14:35:12

标签: java spring groovy spring-boot spring-el

我创建了一个这样的抽象类:

abstract class ScheduledProcess {

  abstract List<String> fetchNewContent()
  abstract List<String> cron()

  //This SPeL doesn't work just stating what kind of expression I'm looking for
  @Scheduled(cron='#{this.cron()}')
  void persistContent(){
     doSomeStuffWithContent(fetchNewContent())
  }

}

我的目标是不要重复自己必须在所有子类中实现@Scheduled方法。 cron()方法返回特定的子类cron表达式。但是,我没有找到一种方法来传递注释的cron值。也许我只是以错误的方式看待这个问题。

2 个答案:

答案 0 :(得分:1)

我认为现在可以(Spring 4.3.0)你可以在问题中看到它。

https://jira.spring.io/browse/SPR-13625

如果您使用的是另一个Spring版本,则可以编写自己的beanpostprocessor。你可以在量子这里给出的答案中看到一个例子

Injecting externalized value into Spring annotation

答案 1 :(得分:0)

您不能在那里使用SpEL,只能使用属性占位符${...}