- 浏览: 1065649 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (314)
- java 技术 (45)
- Java Util (3)
- Struts2 学习笔记 (23)
- MySql@数据库 (18)
- Oracle@数据库 (4)
- sqlserver@数据库 (20)
- Hibernate配置及应用 (7)
- 基础学习笔记@javaScript (24)
- 常用应用实例@javaScript (41)
- 网页设计 (20)
- bug (13)
- 总结 (4)
- eclipse应用 (23)
- tomcat设置及问题 (15)
- SWFUplaod学习笔记 (7)
- C# (5)
- PPT经验技巧 (8)
- 心情随笔 (3)
- 其他 (19)
- jquery (4)
- sping (1)
- json相关 (2)
最新评论
-
流年已逝_奋斗不止2013:
很有用,谢谢!
HQL select 总结 -
qq_31945283:
完美解决了我的难题,谢谢
四、struts2+swfUpload例子二 -
qq_31945283:
...
四、struts2+swfUpload例子二 -
sunbingrun:
集成到我的项目里, 居然post_params: {&quo ...
三、struts2+swfUpload简单例子 -
flyarun:
牛B ,这种人就是我的偶像
四、struts2+swfUpload例子二
这里使用的是Spring2.5,需要的jar包:spring.jar(spring2.5的完全包);quartz-all-1.6.0.jar;还需commons-*.jar。
方法一:
任务调度工作类代码:
应用上下文XML中的具体配置如下:
方法二:
任务调度工作类代码:
应用上下文XML中的具体配置如下:
方法三:
任务调度工作类代码:
应用上下文XML中的具体配置如下:
特别说明:
Xml代码 收藏代码
0 0/2 * * * ? 每两分钟
就上面的这个cron表达式,定时任务在第三种配置模式下,表现为以下行为:
定时任务是一个线程在执行,例如线程在09:00:00启动,且完成工作在09:02:00 之前,那么线程健在09:02:00再次启动。如果线程在09:00:00启动,且完成工作在09:02:00之后,那么线程健在完成时间再次启动。
在该配置下,总结规律如下:
1.定时任务将由一个线程启动,而不是多个线程执行。
2.该线程每两分钟启动一次,该时间间隔是线程每次启动的时间差,如果线程执行时间超出了两分钟的设定间隔,那么线程在执行完成后继续执行。
多线线程配置模式下的运行规律大家可以自行测试。
方法一:
任务调度工作类代码:
public class Clock extends TimerTask{ @Override public void run() { System.out.println("clock!"); } }
应用上下文XML中的具体配置如下:
<?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.0.xsd"> <!-- 第一步 声明一个定时任务,该类extends java.util.TimerTask --> <bean id="clock" class="com.Clock" /> <!-- 第二步 调度定时任务,把声明的定时任务注入进来,并设置定时参数 --> <bean id="scheduledClock" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <property name="timerTask" ref="clock" /> <!--这里是每隔多长时间就进行一次计时任务,单位ms--> <property name="period"> <value>5000</value> </property> <!--这里是服务启动后延时多少时间,开始计时任务,单位ms--> <property name="delay"> <value>5000</value> </property> </bean> <!-- 第三步 启动定时任务,如果有多个定时任务,则重复步骤一,二,然后把第二步设置的beany放在下面的list列表中.此方法不能精确几点运行定时任务 --> <bean class="org.springframework.scheduling.timer.TimerFactoryBean"> <property name="scheduledTimerTasks"> <list> <ref bean="scheduledClock" /> </list> </property> </bean> </beans>
方法二:
任务调度工作类代码:
public class QuartzClock extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException { System.out.println("QuartzClock!"); } }
应用上下文XML中的具体配置如下:
<?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.0.xsd"> <!-- 第一步 声明一个定时任务,注意不是直接声明,而是声明一个JobDetailBean,通过jobClass属性设置一个定时对象 --> <bean id="quartzClock" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass"> <value>com.QuartzClock</value> </property> </bean> <!-- 第二步 调度定时任务,把声明的定时任务注入进来,并设置定时参数,配置方式同第一种方法 --> <!-- <bean id="quartzClockTask" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail"> <ref bean="quartzClock" /> </property> <property name="startDelay"> <value>6000</value> </property> <property name="repeatInterval"> <value>6000</value> </property> </bean> --> <!-- 这种配置可以精确几点执行定时任务 --> <bean id="cronQuartzClock" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="quartzClock" /> <property name="cronExpression"> <!-- 0/15 * * * * ? 每15秒钟 --> <value>0/15 * * * * ?</value> </property> </bean> <!--第三步 启动定时任务,注意这里的ref bean --> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronQuartzClock" /> </list> </property> </bean> </beans>
方法三:
任务调度工作类代码:
public class TaskServiceImpl{ public void synchronizeDb(){ System.out.println("Quartz的任务调度!"); } }
应用上下文XML中的具体配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- 定时任务的工作Bean --> <bean id="quartzJob" class="com.whty.task.service.impl.TaskServiceImpl" /> <!-- 定义生成工作对象的工厂,并为工厂设定目标对象targetObject属性、目标对象的工作方法targetMethod属性 --> <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="quartzJob" /> <property name="targetMethod"> <value>synchronizeDb</value> </property> <property name="concurrent" value="false" /> </bean> <!-- 任务调度计时器,进行定时设置。CronTriggerBean能进行非常精确的定时设置 --> <bean id="cronQuartzClock" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobDetail" /> <!-- cron表达式 --> <property name="cronExpression"> <!-- 0 0 */2 * * ? 每两小时、整点触发 --> <!-- 0 0/2 * * * ? 每两分钟 --> <!-- 0/5 * * * * ? 每五秒钟 --> <!-- 0 15 10 * * ? 每天Y分X点触发 --> <value>0/15 * * * * ?</value> </property> </bean> <!-- 调度任务触发器,启动定时任务--> <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronQuartzClock" /> </list> </property> </bean> </beans>
特别说明:
Xml代码 收藏代码
0 0/2 * * * ? 每两分钟
就上面的这个cron表达式,定时任务在第三种配置模式下,表现为以下行为:
定时任务是一个线程在执行,例如线程在09:00:00启动,且完成工作在09:02:00 之前,那么线程健在09:02:00再次启动。如果线程在09:00:00启动,且完成工作在09:02:00之后,那么线程健在完成时间再次启动。
在该配置下,总结规律如下:
1.定时任务将由一个线程启动,而不是多个线程执行。
2.该线程每两分钟启动一次,该时间间隔是线程每次启动的时间差,如果线程执行时间超出了两分钟的设定间隔,那么线程在执行完成后继续执行。
多线线程配置模式下的运行规律大家可以自行测试。
发表评论
-
spring2.0+ehcache2.1.0配置
2021-02-03 09:43 1002记录使用ehcache时遇到的两个问题 一、原使用的是spr ... -
前端解决跨域问题的8种方案
2020-07-31 09:46 746前端解决跨域问题的8 ... -
浏览器拦截跨域请求处理方法
2020-07-31 09:37 1094引用在浏览器请求中,出现跨域访问资源的问题,我们肯定会遇到。如 ... -
iText pdf表格画斜线
2020-07-29 10:00 2267在使用iText输出pdf表格文件时,有时存在较复杂的报表样式 ... -
Java iText导出pdf功能实现
2020-07-29 09:58 762引用:http://www.anyrt.com/blog/li ... -
HTML5手机端拍照上传
2020-03-23 16:11 583HTML5手机端拍照上传 -
Java保留两位小数的几种做法
2020-03-20 10:03 5891. 使用java.math.BigDecimal 2. 使 ... -
下载文件中文文件名乱码问题(兼容浏览器)
2019-07-31 09:56 1161public void encodeFileName()thr ... -
JSP 页面中用绝对路径显示图片
2019-03-08 09:31 1504首先,图片和工程不在一个盘符下。图片也不能放到工程下。 在J ... -
在java中高效复制一个文件夹里面所有的内容
2018-05-24 16:00 757先看下传统的方法:利用字节流直接复制 public sta ... -
解决在IE下label中点击img图片无法选中radio的方案
2018-05-21 09:57 1023例如,这样的代码 <input type=" ... -
java POI 读写word docx文件的相关文章收藏
2018-04-30 12:20 967使用POI读写word docx文件 http://elim. ... -
java基础——Collections.sort的两种用法
2018-04-20 09:45 3287Collections是一个工具类,sort是其中的静态方法, ... -
Java设置session超时(失效)的时间
2018-04-20 12:25 1878在一般系统登录后,都会设置一个当前session失效的时间,以 ... -
65条最常用正则表达式
2017-08-18 14:07 716一、校验数字的表达式 ... -
【转】Java List 随机取记录
2015-09-21 09:55 4838在这对Java List中怎么随机取数做一个分享: 其实Li ... -
Cookie跨域操作
2015-08-25 14:21 716正常的cookie只能在一个 ... -
配置Tomcat使用https协议(配置SSL协议)
2015-08-25 11:03 574http://ln-ydc.iteye.com/blog/13 ... -
Java使用正则表达式获取文本的章节名称
2015-02-04 13:17 2207获取文本的章节,首先要确定章节的开始标准,一般中文的章节都是以 ... -
swf2pdf转swf时字符集问题 Internal error: No current splash fontinfo
2014-12-17 11:33 2591swf2pdf转swf时字符集问题 在转换过程中报错:比如 ...
相关推荐
根据给定的部分内容,我们可以看到一个典型的Spring2.5定时任务配置示例。下面对这些配置进行详细解读: ##### 1. 线程池配置(`ThreadPoolTaskExecutor`) ```xml <bean id="executor" class="org.spring...
4. **服务支持**:Spring 提供了诸如消息服务、定时任务等多种企业级服务。 5. **模板类**:如JdbcTemplate、HibernateTemplate,简化了数据访问操作。 6. **框架集成**:Spring 可以无缝集成其他框架,如MVC框架...
提供了一些额外的功能支持,如缓存管理、定时任务、邮件服务等。 11. **spring-web.jar** 提供了Web应用程序支持,包括对Web环境下的上下文的支持,如Servlet容器初始化参数、会话管理和过滤器等。 12. **...
在人事管理系统中,Quartz可能被用来安排定期的薪资计算、员工考勤统计等定时任务。 J2EE(Java Platform, Enterprise Edition)是Java开发企业级应用的平台,提供了多种服务和API,如EJB(Enterprise JavaBeans)...
为了使用Spring的定时任务功能,需要在项目中添加以下依赖库: - **commons-collections.jar** - **quartz-all-1.6.1.jar** - **jta.jar** - **commons-lang-2.4.jar** - **spring-2.5.6.jar** - **commons-logging...
Spring框架提供了多种方式来实现定时任务,其中之一就是整合JDK自带的`TimerTask`。本文将详细介绍如何在Spring中使用`TimerTask`实现定时任务调度。 首先,`TimerTask`是Java标准库中的一个类,它实现了`Runnable`...
- 集成其他中间件,如 Redis 缓存、Quartz 定时任务等。 总结,Spring MVC 为开发者提供了灵活且强大的 Web 开发框架,通过 XML 配置,我们可以自定义各个组件,实现复杂的应用场景。随着版本的升级,Spring 逐渐...
5. **Spring Batch**:处理批量和定时任务。 6. **Spring Integration**:提供多种集成技术,如消息传递和文件系统交互。 **Struts 2.5** Struts 2是基于MVC设计模式的Java Web应用程序框架。Struts 2.5是该框架的...
在提供的文档中,"Spring3.0中文版.chm"、"Spring2.5中文版.chm"和"Spring3.2中文版.pdf"分别对应Spring的不同版本。你可以根据实际需要选择对应的文档进行学习。例如,如果你正在使用Spring 3.0,那么"Spring3.0...
总结一下,Spring定时任务的使用涉及到以下几个核心概念: 1. **SchedulerFactoryBean**:这是Spring用来创建Quartz调度器的bean,你可以配置它的属性如`autoStartup`和`triggers`。 2. **CronTriggerBean**:用于...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
5. **定时任务**:描述中提到系统尝试了两种定时任务,这可能是指使用Spring的TaskExecutor或者Quartz等第三方库来定期执行某些任务,比如自动备份数据库、统计图书借阅情况等。定时任务在图书管理系统中可以实现...
2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在classpath中自动搜索组件...
- 基础组件包含了事件传播机制、定时任务执行等。 - **1.2.5 测试** - Spring提供了测试框架,简化了单元测试和集成测试的过程。 **1.3 使用方案** - **1.3.1 依赖管理和命名规约** - 讲述了如何在项目中管理...
Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack ...19.2. 使用Spring JMS ...
### Spring技术文档知识点详解 #### 一、Spring框架概述与应用场景 **1.1 框架概述** Spring框架是一个开源的应用...以上是Spring框架文档中提到的关键知识点总结,希望能帮助开发者更好地理解和使用Spring框架。
Spring Boot 支持通过 `@Scheduled` 注解来定义定时任务。可以通过配置定时任务的执行周期(如每天执行一次、每分钟执行一次等)来实现自动化任务处理。 以上是对 Spring Boot 相关知识点的详细解释,涵盖了 Spring...