spring 定时器配置 摘自 那年那月那天
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 定时器配置 摘自 那年那月那天相关推荐
- Spring定时器配置
声明触发器loadPortalUserLoginOrLogoutTrigger <bean id="quartzSchedulerFactory" class="o ...
- Spring 定时器
本文向您介绍Spring定时器的两种实现方式,包括Java Timer定时和Quartz定时器,两种Spring定时器的实现方式各有优点,可结合具体项目考虑是否采用. 有两种流行Spring定时器配置 ...
- [spring-framework]Spring定时器的配置和使用
开发中我们常常会做一些定时任务,这些任务有开始时间,并会按一定的周期或规则执行.如此我们在Java程序开发中使用定时器来处理定时任务. <!-- MessageRequestTask类中包含了m ...
- spring中配置quartz定时器
spring中配置quartz定时器 最近项目中用到定时器,项目用的spring所以想在spring中配置一下定时器,看到网上用quartz的比较多,所以就搜了一下.参考:http://blog.cs ...
- 19年8月 字母哥 第三章 spring boot 配置原理实战 用热点公司网不行
第三章 spring boot 配置原理实战 3.1.结合配置加载讲解bean自动装配原理 3.2.详解YAML语法及占位符语法 3.3.获取自定义配置的两种实现方法 3.4.配置文件注入值数据校验 ...
- spring定时器(@Scheduled)
spring定时器需要额外添加下面配置 一.配置文件 xmlns 额外添加下面的内容: xmlns:task="http://www.springframework.org/schema/t ...
- java多个数据库数据进行访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码...
之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...
- mysql 多数据源访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码
之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...
- 【Spring 定时器】Spring 定时器 No qualifying bean of type [org.springframework.scheduling.TaskScheduler]
Spring 定时器 No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined 2016 ...
最新文章
- 《python 与数据挖掘 》一 1.2 工具简介
- python在教育领域可以干什么_学了Python一般可以用来干什么呢?
- Fort.js – 时尚、现代的表单填写进度提示效果
- 机器人操作系统来到Windows
- cmake 版本 arm_尝试使用CMake构建Qt+Pytorch简单应用
- 逻辑回归Logistic Regression 之基础知识准备
- .net core 发起web请求_温故知新 .Net重定向深度分析
- springboot 日志设计结构
- .QT-制作最强电压电阻表盘,可以自定义阴影效果,渐变颜色,图标,文字标签等-附带demo程序
- ocp 042 第十二章:主动维护
- 三、spring boot 1.5.4 web容器定制(端口号等修改)
- 安装12G内存读出内存条为3.45G的处理方法
- 面试题(Qt + 函数指针)
- python2和python3中的map()
- React-Native 在 mac 下 build 问题
- 内存模型以及分区,需要详细到每个区放什么
- WebGL学习之法线贴图
- Android-两种方式实现走马灯效果
- C++11中的原子操作(atomic operation)
- win10重新安装应用商店
热门文章
- python 泛型_编写泛型
- /mnt/c/Users/user/AppData/Local/Programs/Microsoft VS Code/Code.exe: Permission denied
- 专家称楼市细分市场出现机会 “以价换量”成趋势
- Springboot整合Elasticsearch 报错availableProcessors is already set to [4], rejecting [4]
- jquery的thickbox使用技巧汇总
- 如何学习前端技术,你需要的
- 打怪游戏 勇者打恶龙v2.1
- 如何明晰定位与责任_找准定位 明晰责任 激发活力 发挥作用
- java打印出n行金字塔_在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下: * *** ***** ****** *********_学小易找答案...
- 什么蓝牙耳机适合realme手机?适合realme手机的高端蓝牙耳机推荐