@Schedule对自己的实施有哪些优势?

时间:2013-05-16 08:48:34

标签: spring scheduling

我们正在使用Spring,我向我的同事建议他应该使用@Schedule而不是使用RunnableThread.sleep()手动编码行为。

我指出,注释更“高级”,更具描述性,更易于配置和测试,但这并不足以令人信服。他认为他只需要一个非常简单的行为,因此使用“魔法”会超过顶部并导致不必要的开销。

我是否错过了一些好的论点?

1 个答案:

答案 0 :(得分:1)

我认为这通常与您想要实现的抽象级别有关。在得到答案之前,我认为值得问:

  

static 是多少代码?换句话说,您所引用的作品随着时间的推移会发生变化,无论是在逻辑还是在计划中需要运行?

基于这个问题,我认为无论使用什么框架/库,都应该尊重一件事:

  

任务的逻辑应该调度方面交错。

因此,使用Spring或任何其他调度库的第一个副作用是,除了计划和运行它之外,还为任务提供了单独的抽象

因此,只要存在关注点和所需抽象的分离,我认为不使用任何特定的库是可以的。另一方面,例如,如果没有使用Spring DI来运行任务,那么可以再次认为使用Spring并不是必需的。

根据我对这个问题的理解,我建议至少使用Java的Timer抽象,如果Spring对这个问题看起来太多了。