Java Spring SpEL使用问题:在@Scheduled annotation处调用SpEL表达式中的子实例方法无效

Java Spring SpEL使用问题:在@Scheduled annotation处调用SpEL表达式中的子实例方法无效,java,spring,spring-mvc,cron,spring-el,Java,Spring,Spring Mvc,Cron,Spring El,我有多个cron任务,它们以不同的时间间隔运行,所有这些任务都有一些我想在超级类(抽象)中执行的常见任务,并提供了两个需要由子类实现的抽象方法。在这些方法中,getCronExpr是一种必须由子类实现并返回相应cron表达式的方法。这就是我为实现这一目标所做的: public abstract class AbstractTask{ @Scheduled(cron="#{@this.getCronExpr()}") public void run(){

我有多个cron任务,它们以不同的时间间隔运行,所有这些任务都有一些我想在超级类(抽象)中执行的常见任务,并提供了两个需要由子类实现的抽象方法。在这些方法中,
getCronExpr
是一种必须由子类实现并返回相应cron表达式的方法。这就是我为实现这一目标所做的:

public abstract class AbstractTask{
   @Scheduled(cron="#{@this.getCronExpr()}")
   public void run(){
     System.out.println("cron execution started");
   }
   public abstract String getCronExpr();
}

@Component
@EnableScheduling
@EnableAsync
public MyTask1 extends AbstractTask{
@Override
public String getCronExpr() {
    logger.info("inside getCronExpr method");
    return "0 0/2 * * * ?";
}
}

@Component
@EnableScheduling
@EnableAsync
public MyTask2 extends AbstractTask{
@Override
public String getCronExpr() {
    logger.info("inside getCronExpr method");
    return "0 0/60 * * * ?";
}
}
但是这个,
@Scheduled(cron=“#{@this.getCronExpr()}”)
给了我下面的错误

org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1058E: A problem occurred when trying to resolve bean 'this':'Could not resolve bean reference against BeanFactory'
与其使用
this
,不如使用准确的bean id,其工作正常,如下所示:
@Scheduled(cron=“#{@myTask1.getCronExpr()}”)

但是我不能这样做,因为有多个子类,这个cron表达式需要对应于子实例进行计算。从昨天开始,我在互联网上搜索了所有可能的方法,但都没有奏效

供您参考,我使用以下弹簧罐:

spring-core-4.3.10.RELEASE.jar
spring-osgi-core-1.2.1.jar
spring-expression-4.3.10.RELEASE.jar
spring-beans-4.3.10.RELEASE.jar
spring-context-4.3.10.RELEASE.jar
spring-aop-4.3.10.RELEASE.jar
spring-data-mongodb-1.9.7.RELEASE.jar
spring-data-commons-1.12.6.RELEASE.jar
spring-tx-4.3.10.RELEASE.jar
spring-web-4.3.10.RELEASE.jar