Quartz集成springMVC 的方案一

Quartz是一个开放源码项目,专注于任务调度器。

springMVC 具体的搭建框架就不具体说明,接下来直接描述把Quartz集成到springMVC 框架中。

步骤:

  1.引入所需要的jar包

  2.新建要定时做的事情的具体实现类和方法,这边可以实现多个类和方法,只要spring-quartz.xml文件中配置任务几个并对应的实现类和方法。

 public class DataButtServiceImpl  {    

    public void run() {
       //定时要做的事情的具体实现
     }
 }

2.新建一个spring-quartz.xml文件放在跟springMVC 的配置文件同级目录就可以了,spring-quartz.xml可以配置多个任务,列如quartzJobA、quartzJobB,并配置对应的方法和时间表达式(什么时间执行)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <!-- 要调用的工作类 -->
    <bean id="quartzJobA" class="cn.handle.data.impl.DataButtServiceImpl"/>
    <!-- 定义调用对象和调用对象的方法A -->
    <bean id="jobtaskA" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!-- 调用的类 -->
        <property name="targetObject">
            <ref bean="quartzJobA"/>
        </property>
        <!-- 调用类中的方法 -->
        <property name="targetMethod">
            <value>run</value>
        </property>
    </bean>

    <!-- 要调用的工作类
    <bean id="quartzJobB" class="cn.EventProviderServiceImpl"/>-->
    <!-- 定义调用对象和调用对象的方法B
    <bean id="jobtaskB" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="quartzJobB"/>
        </property>
        <property name="targetMethod">
            <value>run</value>
        </property>
    </bean>-->

    <!-- 定义触发时间A -->
    <bean id="doTimeA" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail">
            <ref bean="jobtaskA"/>
        </property>
        <property name="cronExpression">
            <value>0 0/1 * * * ?</value>
        </property>
    </bean>

    <!-- 定义触发时间B
    <bean id="doTimeB" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="jobtaskB"/>
        </property>
        <property name="cronExpression">
            <value>0 * * * * ?</value>
        </property>
    </bean>-->

    <!-- 总管理类 如果将lazy-init=‘false‘那么容器启动就会执行调度程序  -->
    <bean id="startQuartz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="doTimeA"/>
                <!-- <ref bean="doTimeB"/> -->
            </list>
        </property>
    </bean>
</beans>

cronExpression值有几种如下:

"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触发 

2.在web.xml中描述启动时要读spring-quartz.xml这个文件并解析

总结:

这样的集成存在几个缺点:

1.我们能不能在页面上进行管理JOB。

2.不能支持持久化任务,集群和分布式任务。

接下去讲另外一个集成,针对上面总结的改进。

时间: 2024-08-06 20:07:09

Quartz集成springMVC 的方案一的相关文章

ABP官方文档翻译 7.3 Quartz集成

Quartz集成 介绍 安装 创建Jobs 计划安排Jobs 更多 介绍 Quartz是一个全功能的.开源的job计划安排系统,可以用在小的apps也可以用于大型的企业系统.Abp.Quartz包简化了ABP集成Quartz. ABP有內建的持久化后台job队列和后台worker系统.如果对于后台workers你有更高级的计划安排需求,Quartz会是一个更好的选择.对于持久化后台job队列,Hangfire也是一个好的选择. 安装 在工程中安装Abp.Quartz nuget包并在模块上为Ab

Struts1.X与Spring集成——第二种方案

上篇博客介绍了Struts1.X与Spring集成的一种方案.Struts1.X与Spring集成--第一种方案 此篇博客还以上篇博客的登录例子为例,介绍Struts1.X与Spring集成的另一种方案. 1,第一种方案 原理 回忆第一种方案集成原理:在Action中取得BeanFactory,通过BeanFactory取得业务逻辑对象 此种方案的缺点:从严格意义的分层上来看,Action上看到了Spring的相关东西,依赖Spring API去查找东西,发生了依赖查找,因为要查找依赖对象,所以

Struts1.X与Spring集成——第一种方案

spring+struts(第一种方案) 集成原理:在Action中取得BeanFactory,通过BeanFactory取得业务逻辑对象,调用业务逻辑方法. 一,新建一个项目Spring_Struts_01 二,步骤 1.spring和Struts的依赖包配置 *Struts (1)拷贝Struts和jstl的依赖包 (2)在web.xml文件中配置ActionServlet <span style="font-family:KaiTi_GB2312;font-size:18px;&qu

Quartz总结(一):Quartz集成Spring的2个方法

零.引言 关于Spring集成Quartz有2种方法: 1. JobDetailBean. 2. MethodInvokeJobDetailFactoryBean. 以下从自身使用和理解以及掌握的知识对其进行阐述. 需要注意的是,在使用Spring集成Quartz的时候,一定不要忘记引入spring-support这个包: <!-- spring-support.jar 这个jar 文件包含支持UI模版(Velocity,FreeMarker,JasperReports),邮件服务,脚本服务(J

Spring 4 + Quartz 集成举例

Step 1: Configure Jobs in Quartz Scheduler A : Using MethodInvokingJobDetailFactoryBean 1 2 3 4 5 6 7 8 <bean id="simpleJobDetail"         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">         

Spring+Struts集成(第二种方案)

在上一篇文章中我们了解到了第一种Spring跟Struts集成的方案,但此集成方案的不足是WEB层中知道Spring的相关内容,因为需要去主动的查找对象:BeanFactory.方案二便是通过依赖注入的方式来进行.通过Spring提供ActionProxy进行代理.去获取BeanFactory,找到Path的名称,然后找到path路径下的Action,然后完成注入. 方案二的核心:Struts的核心交给Spring来创建.Spring跟其他框架集合主要也是通过此种方式. 方案二集成框架图: sp

集成SpringMVC, Spring, Mybatis环境

web.xml: <?xml version="1.0" encoding="UTF-8"?><web-app version="3.1"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns="http://xmlns.jcp.org/xml/ns/javaee"   xsi:schemaLocation="

【Web】Java生成中文GIF动态验证码-集成SpringMVC

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 说明 GIF验证码相对于JPG图片验证码来说,要更难破解一些,加大了破解的代价. 从昨天到现在,写了一个小小的GIF验证码项目(中文成语). 当然,你可以自己修改成字母数字的.我只是单纯的觉得中文验证码的破解代价更高一点~ 我在这里生成GIF图片的类,用到了国外牛人的三个类,也就是: AnimatedGifEncoder LZWEncoder 和NeuQuant,这三个类. 没办法

redis集成springmvc

windows环境 进入redis目录->启动redis:redis-server.exe  redis.windows.conf 一:加载redis配置文件 二:redis配置 注意:poolConfig  属性 name 名字不要叫maxActives和maxWait 三:配置文件 四:设置redistemplate 五:redis:MemberDao 六:service 七:controller