Spring和WEB中配置定时器

2017-10-11  本文已影响0人  如一诺然

1.创建spring的配置文件,spring.xml,内容如下:

<bean id="timerFactory" class="org.springframework.scheduling.timer.TimerFactoryBean" lazy-init="false">
        <property name="scheduledTimerTasks">
            <list>
                <ref local="scheduledTask1"/>
            </list>
        </property>
    </bean>
 
    <bean id="scheduledTask1" class="org.springframework.scheduling.timer.ScheduledTimerTask">
        <property name="delay" value="0" />
        <property name="period" value="10000" />
        <property name="timerTask">
            <ref bean="methodInvokingTask1"/>
        </property>
    </bean>
     
    <bean id="methodInvokingTask1" class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean">
        <property name="targetObject" ref="myTask1"/>
        <property name="targetMethod" value="run"/>
    </bean>
 
    <bean id="myTask1" class="org.garbagecan.springstudy.schedule.timer.MyTask">
    </bean>

2、调度说明

1)定义了一个task,task1。
2)利用spring提供的MethodInvokingTimerTaskFactoryBean类来实现对task类和方法的声明,声明目标对象和方法,从而使spring知道要运行那个类的那个方法。
3)利用ScheduledTimerTask类来配置每个task的启动时间延时,每次启动之间的间隔,当然还有最重要的是需要运行那个对象,这里使用的上面提到的MethodInvokingTimerTaskFactoryBean类的实例。
4)最后定义了一个TimerFactoryBean类,并且把ScheduledTimerTask类的实例作为需要调度的task。

3、WEB中启动定时任务

首先实现 javax.servlet.ServletContextListener接口,同时实现它的contextInitialized (ServletContextEvent event)和contextDestroyed(ServletContextEvent event)两个接口函数。
然后把ServletContextListener部署到您的Web工程中去,在您工程的web.xml配置文件中加入如下三行:
<listener>
<listener-class>com.test.ContextListener</listener-class>
</listener>

上一篇下一篇

猜你喜欢

热点阅读