当前位置:文档之家› spring3使用注解方式实现任务调度

spring3使用注解方式实现任务调度

此内容基于Spring 3.0.5 版本运行,参考文档为spring-framework-reference-3.0.5.pdf



在spring3 中的task 命名空间。可以部分去取代 quartz,并且支持注解方式。但是如果使用更加复杂的任务调度。还是建议是使用quartz。以下就使用 task 和 quartz来进行任务调度的方法进行距离。
?使用 注解来 来调度任务

编写一个任务实例。




view plaincopy to clipboard
01./***********************************************************************
02. *
03. * TestJob.java
04. *
05. * ****所有,
06. * 受到法律的保护,任何公司或个人,未经授权不得擅自拷贝。
07. * @copyright Copyright: 2000-2011
08. * @creator 徐泽宇

09. * @create-time 2011-6-27 下午11:51:16
10. * @revision $Id: *
11. ***********************************************************************/
12.package com.alcor.aerie.quartz;
13.import org.slf4j.Logger;
14.import org.slf4j.LoggerFactory;
15.import org.springframework.scheduling.annotation.Scheduled;
16.import org.springframework.stereotype.Service;
17.@Service
18.public class TestJob {
19. /**
20. * Logger for this class
21. */
22. private static final Logger logger = LoggerFactory.getLogger(TestJob.class);
23. @Scheduled(fixedDelay = 1000)
24. public void work()
25. {
26. if (logger.isDebugEnabled()) {
27. logger.debug("work() - start"); //$NON-NLS-1$
28. }
29. https://www.doczj.com/doc/cc10946619.html,("Spring Quartz的TestJob任务被调用!");
30. if (logger.isDebugEnabled()) {
31. logger.debug("work() - end"); //$NON-NLS-1$
32. }
33. }
34.}


注意其中的@Scheduled 标签

配置spring的ApplicationContext.xml




view plaincopy to clipboard
01.
02.03. xmlns:context="https://www.doczj.com/doc/cc10946619.html,/schema/context"
04. xmlns:task="https://www.doczj.com/doc/cc10946619.html,/schema/task"
05. xsi:schemaLocation="https://www.doczj.com/doc/cc10946619.html,/schema/beans
06. https://www.doczj.com/doc/cc10946619.html,/schema/beans/spring-beans-3.0.xsd
07. https://www.doczj.com/doc/cc10946619.html,/schema/fex
08. https://www.doczj.com/doc/cc10946619.html,/schema/fex/spring-fex-1.5.xsd
09. https://www.doczj.com/doc/cc10946619.html,/schema/task
10. https://www.doczj.com/doc/cc10946619.html,/schema/task/spring-task-3.0.xsd
11. https://www.doczj.com/doc/cc10946619.html,/schema/context
12. https://www.doczj.com/doc/cc10946619.html,/schema/context/spring-context-3.0.xsd">
13.
14.
15.
16.
17.
18.



注意:其中xmlns里面加

入 : xmlns:task="https://www.doczj.com/doc/cc10946619.html,/schema/task" 。在 xsi:schemaLocation中加入 https://www.doczj.com/doc/cc10946619.html,/schema/task https://www.doczj.com/doc/cc10946619.html,/schema/task/spring-task-3.0.xsd。在配置中加入





如果开发的是web应用,那么在web.xml里面加入


org.springframework.web.context.ContextLoaderListener


就可以在context启动的时候,自动扫描和装备这个被调度的任务。
?不使用注解,而通过配置来调度任务

编写一个任务实例




view plaincopy to clipboard
/***********************************************************************
*
* TestJob.java
*
* ****所有,
* 受到法律的保护,任何公司或个人,未经授权不得擅自拷贝。
* @copyright Copyright: 2000-2011
* @creator 徐泽宇

* @create-time 2011-6-27 下午11:51:16
* @revision $Id: *
***********************************************************************/
package com.alcor.aerie.quartz;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@Service
public class TestJob {
/**
* Logger for this class
*/
private static final Logger logger = LoggerFactory.getLogger(TestJob.class);
public void work()
{
if (logger.isDebugEnabled()) {
logger.debug("work() - start"); //$NON-NLS-1$
}
https://www.doczj.com/doc/cc10946619.html,("Spring Quartz的TestJob任务被调用!");
if (logger.isDebugEnabled()) {
logger.debug("work() - end"); //$NON-NLS-1$
}
}
}


注意:这里work方法上没有@Scheduled注解了



在ApplicationContext.xml中加入调度方法




view plaincopy to clipboard





相关主题
文本预览
相关文档 最新文档