您的位置:首页 > 编程语言 > Java开发

Spring 配置 定时器

2015-05-06 17:12 218 查看
要实现每隔多长时间发送一个请求

在applicationContext.xml中配置

所需jar包:

链接:http://pan.baidu.com/s/1jGL4kzO 密码:6ojg

一,配置目标类

[javascript]
view plaincopy

<pre name="code" class="html"> <bean id="backupAdListPolicyJob" class="com.hyan.jms.Test">
<property name="para" value="Spring定时测试v1"></property>
</bean>

二,定时器配置

[html]
view plaincopy

<bean id="scheduSer" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 指定 要执行的定时任务类 -->
<property name="targetObject">
<ref bean="scheduImpl"/>
</property>
<!-- 指定执行任务的方法名称-->
<property name="targetMethod">
<value>scheduImpl</value>
</property>
</bean>

三,定时器时间间隔

[html]
view plaincopy

<bean id="timeTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 声明要运行的实体 -->
<property name="jobDetail">
<ref bean="scheduSer"/>
</property>
<property name="cronExpression">
<!-- 在每天10点到下午10:59期间的每1分钟触发 -->
<value>0 * 10 * * ?</value>
</property>
</bean>

四,启动定时器

[html]
view plaincopy

<bean id="sfb" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="timeTrigger"/>
</list>
</property>
</bean>

在web.xml中的配置

[html]
view plaincopy

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

java的实现代码

[java]
view plaincopy

package com.hyan.jms;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
private String para;
public void scheduImpl(){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(para+" Time is :"+format.format(new Date()));
}
public String getPara() {
return para;
}
public void setPara(String para) {
this.para = para;
}

}

启动tomcat 实现效果



关于定时器的表达式

时间的配置如下:

<value>0 * 10 * * ?</value>

时间大小由小到大排列,从秒开始,顺序为 秒,分,时,天,月,年 *为任意 ?为无限制。由此上面所配置的内容就是,在每天10点到下午10:59期间的每1分钟触发
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: