美文网首页
Spring和WEB中配置定时器

Spring和WEB中配置定时器

作者: 如一诺然 | 来源:发表于2017-10-11 15:30 被阅读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>

    相关文章

      网友评论

          本文标题:Spring和WEB中配置定时器

          本文链接:https://www.haomeiwen.com/subject/jmewyxtx.html