1、 Spring 的org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类,使用此方法使开发人员对Quartz完全透明,需要实现定时任务的方法只是一个普通方法。
[html]
<?xml version="1.0" encoding="UTF-8"?>   
<beans xmlns="http://www.springframework.org/schema/beans"   
    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">   
    <!--     
    方法一:    
    Spring 的org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类,    
    使用此方法使开发人员对Quartz完全透明,需要实现定时任务的方法只是一个普通方法。    
     -->   
    <!--1、 配置文件中添加业务类,该类为调用的工作类 -->   
    <bean id="businessWork" class="com.morningstar.quartz.BusinessWork" />      
        
    <!-- 2、定义任务,在spring文件中配置代理类 ,定义调用对象和调用对象的方法-->     
    <bean id="businessTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">      
        <!-- 调用的类 -->            
        <property name="targetObject" ref="businessWork"/>   
         <!-- 调用类中的方法 -->   
        <property name="targetMethod" value="generateReport"/>     
        <!-- false,证明不执行并发任务 -->   
        <property name="concurrent" value="false"/>       
    </bean>     
    <!-- 3、配置触发器,定义触发时间,可以根据不同的时间对同一个任务定义多个触发器,下面是每隔5秒调用一个方法配置-->   
    <!-- cron表达式 -->   
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">   
        <property name="jobDetail" ref="businessTask"/>   
        <property name="cronExpression" value="10,15,20,25,30,35,40,45,50,55 * * * * ?"/>   
    </bean>   
   
    <!-- 4、配置调度器 ,容器启动就会执行调度程序  -->   
     <!-- 总管理类,如果lazy-init='false',则容器启动时就会执行调度程序-->      
     <!-- 如果lazy-init='true',则需要实例化该bean才能执行调度程序            -->      
    <bean id="schdulerFactory" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">   
        <property name="triggers">   
            <list>   
                <ref bean="cronTrigger"/>   
            </list>   
        </property>   
    </bean>   
</beans>   
2、借助于Spring的org.springframework.scheduling.quartz.JobDetailBean的类功能, 继承 Spring封装Quartz的org.springframework.scheduling.quartz.QuartzJobBean类,实现 executeInternal方法,executeInternal方法中调用业务类。
[html]
<?xml version="1.0" encoding="UTF-8"?>   
<beans xmlns="http://www.springframework.org/schema/beans"   
    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">   
    <!--     
    方法二:    
    借助于Spring的org.springframework.scheduling.quartz.JobDetailBean的类功能,    
    继承 Spring封装Quartz的org.springframework.scheduling.quartz.QuartzJobBean类,实现 executeInternal方法,    
    executeInternal方法中调用业务类    
     -->   
    <!-- 1、定义任务,在spring文件中配置代理类 ,定义调用对象和调用对象的方法-->     
    <bean id="businessTask" class="org.springframework.scheduling.quartz.JobDetailBean">      
        <!-- 调用的类 -->            
        <property name="jobClass" value="com.morningstar.quartz.BusinessWork"/>   
        <!-- 主要是为了在定时任务需要使用到Bean,通过Spring给注入进来,如果不写明,就会报java.lang.NullPointerException错误 -->   
        <!--      
        <property name="jobDataAsMap">   
            <map>   
                <entry key="someService">   
                    <ref bean="someService" />   
                </entry>   
            </map>   
        </property>   
        -->   
    </bean>     
        
    <!-- 2、配置触发器,定义触发时间,可以根据不同的时间对同一个任务定义多个触发器-->   
    <!-- cron表达式 -->   
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">   
        <property name="jobDetail" ref="businessTask"/>   
        <property name="cronExpression" value="10,15,20,25,30,35,40,45,50,55 * * * * ?"/>   
    </bean>   
   
    <!-- 3、配置调度器 ,容器启动就会执行调度程序  -->   
     <!-- 总管理类,如果lazy-init='false',则容器启动时就会执行调度程序-->      
     <!-- 如果lazy-init='true',则需要实例化该bean才能执行调度程序            -->      
    <bean id="schdulerFactory" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">   
        <property name="triggers">   
            <list>   
                <ref bean="cronTrigger"/>   
            </list>   
        </property>   
    </bean>   
</beans>

转载于:https://www.cnblogs.com/b422/archive/2012/08/01/spring_time.html

spring 定时器配置 摘自 那年那月那天相关推荐

  1. Spring定时器配置

    声明触发器loadPortalUserLoginOrLogoutTrigger <bean id="quartzSchedulerFactory" class="o ...

  2. Spring 定时器

    本文向您介绍Spring定时器的两种实现方式,包括Java Timer定时和Quartz定时器,两种Spring定时器的实现方式各有优点,可结合具体项目考虑是否采用. 有两种流行Spring定时器配置 ...

  3. [spring-framework]Spring定时器的配置和使用

    开发中我们常常会做一些定时任务,这些任务有开始时间,并会按一定的周期或规则执行.如此我们在Java程序开发中使用定时器来处理定时任务. <!-- MessageRequestTask类中包含了m ...

  4. spring中配置quartz定时器

    spring中配置quartz定时器 最近项目中用到定时器,项目用的spring所以想在spring中配置一下定时器,看到网上用quartz的比较多,所以就搜了一下.参考:http://blog.cs ...

  5. 19年8月 字母哥 第三章 spring boot 配置原理实战 用热点公司网不行

    第三章 spring boot 配置原理实战 3.1.结合配置加载讲解bean自动装配原理 3.2.详解YAML语法及占位符语法 3.3.获取自定义配置的两种实现方法 3.4.配置文件注入值数据校验 ...

  6. spring定时器(@Scheduled)

    spring定时器需要额外添加下面配置 一.配置文件 xmlns 额外添加下面的内容: xmlns:task="http://www.springframework.org/schema/t ...

  7. java多个数据库数据进行访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码...

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

  8. mysql 多数据源访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

  9. 【Spring 定时器】Spring 定时器 No qualifying bean of type [org.springframework.scheduling.TaskScheduler]

    Spring 定时器 No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined 2016 ...

最新文章

  1. 《python 与数据挖掘 》一 1.2 工具简介
  2. python在教育领域可以干什么_学了Python一般可以用来干什么呢?
  3. Fort.js – 时尚、现代的表单填写进度提示效果
  4. 机器人操作系统来到Windows
  5. cmake 版本 arm_尝试使用CMake构建Qt+Pytorch简单应用
  6. 逻辑回归Logistic Regression 之基础知识准备
  7. .net core 发起web请求_温故知新 .Net重定向深度分析
  8. springboot 日志设计结构
  9. .QT-制作最强电压电阻表盘,可以自定义阴影效果,渐变颜色,图标,文字标签等-附带demo程序
  10. ocp 042 第十二章:主动维护
  11. 三、spring boot 1.5.4 web容器定制(端口号等修改)
  12. 安装12G内存读出内存条为3.45G的处理方法
  13. 面试题(Qt + 函数指针)
  14. python2和python3中的map()
  15. React-Native 在 mac 下 build 问题
  16. 内存模型以及分区,需要详细到每个区放什么
  17. WebGL学习之法线贴图
  18. Android-两种方式实现走马灯效果
  19. C++11中的原子操作(atomic operation)
  20. win10重新安装应用商店

热门文章

  1. python 泛型_编写泛型
  2. /mnt/c/Users/user/AppData/Local/Programs/Microsoft VS Code/Code.exe: Permission denied
  3. 专家称楼市细分市场出现机会 “以价换量”成趋势
  4. Springboot整合Elasticsearch 报错availableProcessors is already set to [4], rejecting [4]
  5. jquery的thickbox使用技巧汇总
  6. 如何学习前端技术,你需要的
  7. 打怪游戏 勇者打恶龙v2.1
  8. 如何明晰定位与责任_找准定位 明晰责任 激发活力 发挥作用
  9. java打印出n行金字塔_在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下: * *** ***** ****** *********_学小易找答案...
  10. 什么蓝牙耳机适合realme手机?适合realme手机的高端蓝牙耳机推荐