Spring整合的quartz任务调度的实现方式
一、在web.xml中将配置文件的位置指定好。
Web.xml的配置如下:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="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/classes/beans.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
二、导入相关的jar包
三、编写相关的类文件
package cn.itcast;
import java.util.Date;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
/**
* 文件名 : CodeCurDate.java<br/>
* 创建人 :涂作权<br/>
下午02:09:20<br/>
* 描述 : 创建一个要执行任务的类,该类必须继承QuartzJobBean规范<br/>
* 版本号 : V1.0
*/
publicclass CodeCurDateextends QuartzJobBean {
/**
* 以某个时间段为周期,循环执行的方法
* 到大某个时间,要执行的方法
*/
protectedvoidexecuteInternal(JobExecutionContextarg0)
throws JobExecutionException {
System.out.println("ppppppppppppppppppppppppppppppppp");
System.out.println(new Date());
}
}
四、编写相关的配置文件
<?xmlversion="1.0"encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<!-- 1创建执行任务的类的实例 -->
<beanid="codeCurDate"class="org.springframework.scheduling.quartz.JobDetailBean">
<!--在spring中执行任务的类的实例的创建,不是通过spring的普通的方法,而是把融合到其他JobDetailBean类中-->
<property name="jobClass">
<value>cn.itcast.CodeCurDate</value>
</property>
</bean>
<!-- 2创建一个触发器,整合执行任务的类的实例和时间关联 -->
<beanid="codeCurDateTrigger"class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<!-- 注入要执行任务的类的实例 -->
<property name="jobDetail"ref="codeCurDate"></property>
秒,以毫秒为单位 -->
<property name="startDelay"value="2000"/>
秒执行任务一次,以毫秒为单位-->
<property name="repeatInterval"value="4000"/>
</bean>
<!-- 3注册触发器,启动调度任务 -->
<beanclass="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<refbean="codeCurDateTrigger"/>
</list>
</property>
</bean>
</beans>
五、启动服务器,接着就可以看到控制台中每隔一段时间就与输出。
二、通过CronTrigerBean的方式实现的任务调度策略
首先:编写任务执行类
package cn.itcast;
import java.util.Date;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
importorg.springframework.scheduling.quartz.QuartzJobBean;
/**
*文件名 : CodeCurDate.java<br/>
*创建人 :涂作权<br/>
*日期时间:2013-6-18 下午02:54:57<br/>
*描述 : <br/>
*版本号 :V1.0
*/
public class CodeCurDate extendsQuartzJobBean {
/**
* 以某个时间段为周期,循环执行的方法
* 到大某个时间,要执行的方法
*/
protectedvoid executeInternal(JobExecutionContext arg0)
throwsJobExecutionException {
System.out.println("PPPPPPPPPPPPPPPPPPPPPPPP");
System.out.println(newDate());
}
}
其次:在Spring的配置文件进行配置,配置代码如下:
<?xmlversion="1.0"encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<!-- 1创建执行任务的类的实例 -->
<beanid="codeCurDate"class="org.springframework.scheduling.quartz.JobDetailBean">
<!--在spring中执行任务的类的实例的创建,不是通过spring的普通的方法,而是把融合到其他JobDetailBean类中-->
<property name="jobClass">
<value>cn.itcast.CodeCurDate</value>
</property>
</bean>
<!-- 2创建一个触发器,整合执行任务的类的实例和时间关联 -->
<beanid="codeCurDateTrigger"class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 注入执行任务的类 -->
<property name="jobDetail"ref="codeCurDate"/>
分将调用该触发器的执行 -->
<property name="cronExpression"value="0 32 13 * * ?"/>
</bean>
<!-- 3注册触发器,启动调度任务 -->
<beanclass="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<refbean="codeCurDateTrigger"/>
</list>
</property>
</bean>
</beans>
最后:在web.xml中配置相关数据
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="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/classes/beans.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
Spring整合的quartz任务调度的实现方式的更多相关文章
- Spring整合Struts2框架的第二种方式(Action由Spring框架来创建)(推荐大家来使用的)
1. spring整合struts的基本操作见我的博文:https://www.cnblogs.com/wyhluckdog/p/10140588.html,这里面将spring与struts2框架整 ...
- Spring整合Struts2框架的第一种方式(Action由Struts2框架来创建)。在我的上一篇博文中介绍的通过web工厂的方式获取servcie的方法因为太麻烦,所以开发的时候不会使用。
1. spring整合struts的基本操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10140588.html,这里面将spring与struts2 ...
- spring整合Quartz2持久化任务调度
转摘 https://blog.csdn.net/qwe6112071/article/details/50999386 因为通过Bean配置生成的JobDetail和CronTrigger或Simp ...
- spring整合mybatis,springMVC的0配置文件方式
0配置文件的形式主要是采用spring3.0提供的@configuration注解和spring容器在启动的时候会加载实现了WebApplicationInitializer的类,并调用其onStar ...
- Spring整合Hibernate:1、annotation方式管理SessionFactory
1.在applicationContext.xml文件中初始化SessionFactory(annotation方式) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...
- Spring与Quartz的整合实现定时任务调度 以及crontab的用法
最近在研究Spring中的定时任务功能,最好的办法当然是使用Quartz来实现.对于一个新手来说,花了我不少时间,这里我写个笔记,给大家参考. 我使用的是Maven来管理项目,需要的Jar包我给大家贴 ...
- Spring与Quartz的整合实现定时任务调度(转)
源:http://kevin19900306.iteye.com/blog/1397744 最近在研究Spring中的定时任务功能,最好的办法当然是使用Quartz来实现.对于一个新手来说,花了我不少 ...
- Spring与Quartz的整合实现定时任务调度
摘自: http://kevin19900306.iteye.com/blog/1397744 最近在研究Spring中的定时任务功能,最好的办法当然是使用Quartz来实现.对于一个新手来说,花了我 ...
- Spring与Quartz的整合实现定时任务调度(转)
最近在研究Spring中的定时任务功能,最好的办法当然是使用Quartz来实现.对于一个新手来说,花了我不少时间,这里我写个笔记,给大家参考.我使用的是Maven来管理项目,需要的Jar包我给大家贴出 ...
随机推荐
- Windows的TCP协议参数
注册表编辑器:regedit 表项:HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Services\Tcpip\Parameters 窗口扩大因子 & ...
- mysql中IN和EXITS效率
mysql中的in语句是把外表和内表作hash 连接.而exists语句是对外表作loop循环,每次loop循环再对内表进行查询.一直大家都觉得exists比in语句的效率要高.这样的说法事实上是不准 ...
- Swift - iOS中各种视图控制器(View Controller)的介绍
在iOS中,不同的视图控制器负责不同的功能,采用不同的风格向用户呈现信息.下面对各个视图控制器做个总结: 1,标准视图控制器 - View Controller 这个控制器只是用来呈现内容.通常会用来 ...
- Microsoft.AspNetCore.Routing路由
Microsoft.AspNetCore.Routing路由 这篇随笔讲讲路由功能,主要内容在项目Microsoft.AspNetCore.Routing中,可以在GitHub上找到,Routing项 ...
- 官方发布的新版本Qt已经不支持XP了,要自己从源代码编译
官方发布的新版本Qt已经不支持XP了,要自己从源代码编译,编译选项里有个-target项,用来提供XP支持的,编译时加上-target xp就可以了 http://www.qtcn.org/bbs/r ...
- java对象占用内存大小计算方式
案例一: User public class User { } UserSizeTest public class UserSizeTest { static final Runtime runTim ...
- 改变Emacs下的注释代码方式以支持当前行(未选中情况下)的注释/反注释
Emacs下支持多行代码的注释/反注释,命令是comment-or-uncomment-region. 我喜欢把它绑定在快捷键C-c C-/上,如下: (global-set-key [?\C-c ? ...
- netduino第一步,环境配置
在netduino.com的官网介绍下,我很快就入门,现在的最新netduino的版本是4.3,但4.3是运行在win8下的,在codeplex.net上有,大部分人还使用的是win7,因此我现在采用 ...
- Android开发之导入错误
在导入Git库中更新下来的project的时候,自己手动的加入libs,assets等依赖库进去.可是导入project总是会莫名奇异的出现故障,特别是对Android系统库依赖的报错之类的. 解决方 ...
- 如何将自定义标签封装成一个Jar包
当我们在一个web应用中开发好一些自定义标签的时候,这些自定义标签通常有标签处理器Java类,和一个描述这些标签tld文件,如果我们想在以后别的web工程中还能用上这些标签,可以将这些自定义标签封装在 ...