您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

java中 spring 定时任务 实现代码

2025/8/12 2:45:08发布27次查看
import org.apache.log4j.*; public class taskjob { public static logger log = logger .getlogger(taskjob.class); public void sayhello() { // todo auto-generated method stub try { log.info("处理任务开始>........"); // 业务逻辑代码调用 system.out.println("时间[" + new java.util.date().tolocalestring() + "]----->大家好啊!"); log.info("处理任务结束!"); } catch (exception e) { log.error("处理任务出现异常", e); } } }
2.接下来的在spring 里配置:
<?xml version="1.0" encoding="utf-8"?> <!doctype beans public "-//spring//dtd bean//en" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean name="taskjob" class="util.taskjob" /> <bean id="methodinvokingjobdetail" class="org.springframework.scheduling.quartz.methodinvokingjobdetailfactorybean"> <property name="targetobject"> <ref bean="taskjob" /> </property> <property name="targetmethod"> <value>sayhello</value> </property> </bean> <!-- 配置触发器 --> <bean id="crontrigger" class="org.springframework.scheduling.quartz.crontriggerbean"> <!-- 这里不可以直接在属性jobdetail中引用taskjob,因为他要求的是一个jobdetail类型的对象,所以我们得通过methodinvokingjobdetailfactorybean来转一下 --> <property name="jobdetail"> <ref bean="methodinvokingjobdetail" /> </property> <!-- 每天的8点到21点每隔1分钟触发,具体说明见附录 --> <property name="cronexpression"> <value>0 * 08-21 * * ?</value> </property> </bean> <bean class="org.springframework.scheduling.quartz.schedulerfactorybean"> <!-- 添加触发器 --> <property name="triggers"> <list> <ref local="crontrigger" /> </list> </property> </bean> </beans>
3.测试执行的类,只要把spring的配置文件加载了就可以看到定时任务运行了。
package util; import org.springframework.context.applicationcontext; import org.springframework.context.support.classpathxmlapplicationcontext; public class testapp { public static void main(string[] args) { // todo auto-generated method stub system.out.println("加载spring配置文件...."); applicationcontext context = new classpathxmlapplicationcontext("applicationcontext.xml"); system.out.println("加载配置文件完毕!"); // applicationcontext context2 = new classpathxmlapplicationcontext("test/timertask/quartztimer.xml"); } }
如果要在web项目中运行的话还要在web.xml 中加入如下代码:
<context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/classes/applicationcontext.xml</param-value> </context-param> <context-param> <param-name>log4jconfiglocation</param-name> <param-value>/web-inf/log4j.properties</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener>
以下是网上摘抄的一些说明:
字段允许值允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / l w c
月份 1-12 或者 jan-dec , - * /
星期 1-7 或者 sun-sat , - * ? / l c #
年(可选)留空, 1970-2099 , - * /
表达式意义
0 0 12 * * ? 每天中午12点触发
0 15 10 ? * * 每天上午10:15触发
0 15 10 * * ? 每天上午10:15触发
0 15 10 * * ? * 每天上午10:15触发
0 15 10 * * ? 2005 2005年的每天上午10:15触发
0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
0 10,44 14 ? 3 wed 每年三月的星期三的下午2:10和2:44触发
0 15 10 ? * mon-fri 周一至周五的上午10:15触发
0 15 10 15 * ? 每月15日上午10:15触发
0 15 10 l * ? 每月最后一日的上午10:15触发
0 15 10 ? * 6l 每月的最后一个星期五上午10:15触发
0 15 10 ? * 6l 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发
0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发
更多java中 spring 定时任务 实现代码。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product