spring中集成TimerTask执行定时任务
2011-12-02 10:23
567 查看
Spring对Timer的支持的核心是由ScheduledTimerTask和TimerFactoryBean类组成的。 ScheduledTimerTask类是对TimerTask的包装器实现,这样你就可以为这个任务定义触发器信息。使用 TimerFactoryBean类,你可以让Spring使用配置创建触发器,并为一组指定的ScheduledTimerTask bean自动创建Timer实例。
1、自定义timerTask,比如:定时输出ServletContext中的信息,本例中输出项目的绝对路径(比如:D:\software\apache-tomcat-6.0.33\webapps\spring\)
2、在spring的bean配置文件中配置,当系统加载该文件时,配置的定时器将自动启动,同时被spring管理。
3、对于web项目,需要在web.xml中进行如下配置
1、自定义timerTask,比如:定时输出ServletContext中的信息,本例中输出项目的绝对路径(比如:D:\software\apache-tomcat-6.0.33\webapps\spring\)
public class BirthdayReminderTimerTask extends TimerTask implements ServletContextAware{ /*通过实现ServletContextAware可获得servletContext*/ private ServletContext servletContext; private static Logger logger = Logger.getLogger(BirthdayReminderTimerTask.class); @Override public void run() { // logger.debug("BirthdayReminderTimerTask is running"); setServletContext(servletContext); try { System.out.println(this.servletContext.getRealPath("/")); } catch (Exception e) { e.printStackTrace(); } } public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } }
2、在spring的bean配置文件中配置,当系统加载该文件时,配置的定时器将自动启动,同时被spring管理。
<!--自定义任务--> <bean id="birthdayReminder" class="com.jep.task.BirthdayReminderTimerTask"></bean> <!-- ScheduledTimerTask类是对TimerTask的包装器实现,这样你就可以为这个任务定义触发器信息。 --> <bean id="birthdayReminderTimerTask" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <!-- 设置启动延迟 --> <property name="delay"> <value>3000</value> </property> <!-- 后续延迟 --> <property name="period"> <value>5000</value> </property> <!-- 指定触发器信息 --> <property name="timerTask"> <ref local="birthdayReminder" /> </property> </bean> <!-- 使用TimerFactoryBean类,你可以让Spring使用配置创建触发器,并为一组指定的ScheduledTimerTask bean自动创建Timer实例。 --> <bean id="timerFactory" class="org.springframework.scheduling.timer.TimerFactoryBean"> <property name="scheduledTimerTasks"> <list> <ref local="birthdayReminderTimerTask" /> </list> </property> </bean>
3、对于web项目,需要在web.xml中进行如下配置
<!-- Spring ApplicationContext配置文件的路径此参数用于后面的Spring-Context loader --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <!--Spring ApplicationContext 载入 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
相关文章推荐
- spring中集成TimerTask执行定时任务
- spring中集成TimerTask执行定时任务
- spring中集成TimerTask执行定时任务
- spring中集成TimerTask执行定时任务
- spring中集成TimerTask执行定时任务 中配置文件的配置
- spring中集成TimerTask执行定时任务
- Jdk自带的定时任务TimerTask和ScheduledExecutorService及其在Spring中的集成
- Spring ScheduledTimerTask 定时任务执行
- Spring 被初始化两次(Spring-Task定时任务执行两次)分析和解决方法
- spring-task定时任务动态配置修改执行时间
- 在Listener(监听器)定时启动的TimerTask(定时任务)中使用Spring@Service注解的bean
- java定时任务,每天定时执行任务(JDK TimerTask)
- java定时任务,每天定时执行任务(JDK TimerTask)
- Spring集成Quartz定时任务 ---- 定时执行
- SpringTask执行定时任务中调用方法中断问题
- 使用TimerTask做每月定时执行任务.
- Spring整合TimerTask实现定时任务调度
- spring-task定时任务执行两次解决方案
- Spring整合TimerTask实现定时任务调度