预定注释和自定义StringResolver

时间:2018-11-06 05:29:13

标签: java spring spring-scheduled

我有几个春季@Component 每个都包含一个@Scheduled(cron="some cron expression")方法。

从数据库启动应用程序时,我需要初始化cron值

因此,我创建了StringValueResolver的自定义实现,如下所示:

public class CustomEmbeddedValueResolver implements StringValueResolver {
@Override
public String resolveStringValue(String attribute1){
    // Search DataBase for key attribute1 and return String value of attribute1
    }
...
}

并在

中注册
public class CustomScheduledAnnotationBeanPostProcessor extends ScheduledAnnotationBeanPostProcessor {
    @Override
    public void setEmbeddedValueResolver(StringValueResolver resolver)
    {
    this.embeddedValueResolver = new CustomEmbeddedValueResolver(resolver, context);
    } 
...
}

我的组件看起来像

@Component
@EnableScheduling
public class MyScheduler {
    @Scheduled(cron = "Property1")
    public void method1()
    { }
}

所以问题在于CustomEmbeddedValueResolver可以正常工作。 它在数据库中查找“ Property1”,并返回字符串“ 0 1 * * * *”

但计划的方法未运行。

怎么了?

谢谢!

0 个答案:

没有答案