- 浏览: 236329 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (101)
- js (10)
- java (39)
- HTTP请求:GET与POST方法的区别(转) (1)
- Freemarker 语法规则 (1)
- AJAX级联菜单实例 (1)
- oralce (1)
- myeclipse (5)
- struts (12)
- sql存储过程基础(转) (4)
- JBPM (1)
- mysql (4)
- hibernate (3)
- ibatis (4)
- spring (4)
- 计算机技术 (1)
- nosql (1)
- sqlserver (1)
- servlet (1)
- 拦截器 (1)
- andriod 开发 (1)
- 程序员 (0)
- 多线程 (2)
- Jenkins (1)
- zk (1)
- JPA (2)
最新评论
-
zhangzh888:
怎么下载 啊 都没有看见文件
sftp处理文件 -
wx_hello:
怎么得到文件的属性呢? 比如文件的新建时间
sftp处理文件 -
HappyVeryGood:
“运行时异常(即非受控异常)自动强制执行整个逻辑工作单元的回滚 ...
事物管理,spring事物详解,spring @transactional -
skeely1234:
感谢分享,太帅了
eclipse下修改项目名导致tomcat内发布名不一致的解决方法
1. 所需类库 :
spring-framework-2.5.6\dist\spring.jar
spring-framework-2.5.6\lib\quartz\quartz-all-1.6.1.jar
spring-framework-2.5.6\lib\jakarta-commons\commons-logging.jar
spring-framework-2.5.6\lib\jakarta-commons\commons-collections.jar
spring-framework-2.5.6\lib\log4j\log4j-1.2.15.jar
注:log4j-1.2.15.jar为日志类库,删除不会出错
1 application.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" >
<beans>
<!-- 要调度的对象-->
<bean id="testQuarz" class="TestQuarz" />
<!--定义定时执行testQuarz 这个bean中的sayHello()方法-->
<bean id="helloworldTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="testQuarz" />
</property>
<property name="targetMethod">
<value>sayHello</value>
</property>
</bean>
<!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是helloworldTask,即触发器去触发哪个bean..并且我们还定义了触发的时间:每天5:17pm-->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="helloworldTask" />
</property>
<property name="cronExpression">
<!-- 关键在配置此表达式 -->
<value>*/1 * 12 * * ?</value>
</property>
</bean>
<!--管理触发器的总设置,管理我们的触发器列表,可以在bean的list中放置多个触发器。-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list><ref local="cronTrigger" /></list>
</property>
</bean>
</beans>
2 web.xml[/size]
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application.xml</param-value>
</context-param>
3 定时执行的方法
public class TestQuarz {
public void sayHello() {
System.out.println("HelloWorld! ");
}
}
在kingtest测试中使用.main()方法调用启动这个程序
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:application.xml");
说明:org.spring framework.scheduling.quartz.SchedulerFactoryBean这是一个spring 的工厂bean,在他的triggers属性列表中加入刚才定义的触发器,这里可以定义多个触发器(list嘛)。
定时批处理作业是J2EE企业应用里很重要的一环,用来在晚间进行财务挂账,数据转存,新闻联播等等操作。
而在Spring里,已经很好的集成了Quartz,简单到像配cron一样,在xml文件里面配一下时间就可以自动执行,不需要写一行代码。Spring对Quartz大刀阔斧的简化堪称范例,Quartz项目组也许可以学习一下。
一个Quartz的CronTrigger表达式分为七项子表达式,其中每一项以空格隔开,从左到右分别是:秒,分,时,月的某天,月,星期的某天,年;其中年不是必须的,也就是说任何一个表达式最少需要六项!
例:0 0 12 ? * WED 表示每个星期三的12点执行,这里没有“年”这项!
字段名(项) 必须 值范围 特殊字符
秒 是 0-59 , - * /
分 是 0-59 , - * /
时 是 0-23 , - * /
月的某天 是 1-31 , - * ? / L W
月 是 1-12 or JAN-DEC , - * /
星期的某天 是 1-7 or SUN-SAT , - * ? / L #
年 否 empty, 1970-2099 , - * /
先看示列:"0 0/30 8-10 5,20 * ?" 表示“每个月的5日和20日的8:00,8:30,9:00,9:30,10:00,10:30”
字符解释:
,:与,表式","两边的值都是需要执行的时间,如上例"5,20",每个月的5日与20日。
-:表示值的范围,如上例"8-10",从8点开始到10结束,包括8点与10点。
*:表式任意可合法的值,如上例"*"是处于月份的字段,所以代表1-12中的任意值,所以上例是指“每个月”。
/:增量,如上例是指从0分开始,每过30分钟取一次值。如果换成"5/8"就是从第5钟开始每过8分钟取一次值:8:05,8:13,8:21,8:29等等
?:不指定值,就是“我也不知道”的意思,只能出现在“月的某天,星期的某天”项中。在什么情况下用呢?如上例如果指定值为星期一,那么可能会出现如4月5日不是星期一,这里就是不对应,有冲突,所以指定为"?",也就是说我也不知道是星期几,只要是5日与20日就行了,至于是星期几我才不管呢!
L:最后的,last的意思,只能出现在“月的某天,星期的某天”项中。表示当前月或当前星期的最后一天,注意的是星期的最后一天为星期六。
W:月中最接近指定日期的普通日(星期一到星期五),只能出现在“月的某天”,如"15W"就是说当前月最接近15日的普通日,如果当月的15是星期三就是星期三,如果当月的15是星期六那么就是昨天也就是星期五,如果当月的15是星期天则为第二天也就是星期一。
#:当前月的第N个星期X日,只能出现在“星期的某天”项中。如"6#3"就是说当前月的第三个星期五,注意"1-7",1=星期天,2=星期一 等等。
注: Spring整合Quartz提示缺javax.transaction.UserTransaction
quartzSpring
提示缺少:javax.transaction.UserTransaction。
原因是在工程中没有加入jta.jar这个包!
另外附加两个例子,希望对所有人都用帮助
spring-framework-2.5.6\dist\spring.jar
spring-framework-2.5.6\lib\quartz\quartz-all-1.6.1.jar
spring-framework-2.5.6\lib\jakarta-commons\commons-logging.jar
spring-framework-2.5.6\lib\jakarta-commons\commons-collections.jar
spring-framework-2.5.6\lib\log4j\log4j-1.2.15.jar
注:log4j-1.2.15.jar为日志类库,删除不会出错
1 application.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" >
<beans>
<!-- 要调度的对象-->
<bean id="testQuarz" class="TestQuarz" />
<!--定义定时执行testQuarz 这个bean中的sayHello()方法-->
<bean id="helloworldTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="testQuarz" />
</property>
<property name="targetMethod">
<value>sayHello</value>
</property>
</bean>
<!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是helloworldTask,即触发器去触发哪个bean..并且我们还定义了触发的时间:每天5:17pm-->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="helloworldTask" />
</property>
<property name="cronExpression">
<!-- 关键在配置此表达式 -->
<value>*/1 * 12 * * ?</value>
</property>
</bean>
<!--管理触发器的总设置,管理我们的触发器列表,可以在bean的list中放置多个触发器。-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list><ref local="cronTrigger" /></list>
</property>
</bean>
</beans>
2 web.xml[/size]
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application.xml</param-value>
</context-param>
3 定时执行的方法
public class TestQuarz {
public void sayHello() {
System.out.println("HelloWorld! ");
}
}
在kingtest测试中使用.main()方法调用启动这个程序
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:application.xml");
说明:org.spring framework.scheduling.quartz.SchedulerFactoryBean这是一个spring 的工厂bean,在他的triggers属性列表中加入刚才定义的触发器,这里可以定义多个触发器(list嘛)。
定时批处理作业是J2EE企业应用里很重要的一环,用来在晚间进行财务挂账,数据转存,新闻联播等等操作。
而在Spring里,已经很好的集成了Quartz,简单到像配cron一样,在xml文件里面配一下时间就可以自动执行,不需要写一行代码。Spring对Quartz大刀阔斧的简化堪称范例,Quartz项目组也许可以学习一下。
一个Quartz的CronTrigger表达式分为七项子表达式,其中每一项以空格隔开,从左到右分别是:秒,分,时,月的某天,月,星期的某天,年;其中年不是必须的,也就是说任何一个表达式最少需要六项!
例:0 0 12 ? * WED 表示每个星期三的12点执行,这里没有“年”这项!
字段名(项) 必须 值范围 特殊字符
秒 是 0-59 , - * /
分 是 0-59 , - * /
时 是 0-23 , - * /
月的某天 是 1-31 , - * ? / L W
月 是 1-12 or JAN-DEC , - * /
星期的某天 是 1-7 or SUN-SAT , - * ? / L #
年 否 empty, 1970-2099 , - * /
先看示列:"0 0/30 8-10 5,20 * ?" 表示“每个月的5日和20日的8:00,8:30,9:00,9:30,10:00,10:30”
字符解释:
,:与,表式","两边的值都是需要执行的时间,如上例"5,20",每个月的5日与20日。
-:表示值的范围,如上例"8-10",从8点开始到10结束,包括8点与10点。
*:表式任意可合法的值,如上例"*"是处于月份的字段,所以代表1-12中的任意值,所以上例是指“每个月”。
/:增量,如上例是指从0分开始,每过30分钟取一次值。如果换成"5/8"就是从第5钟开始每过8分钟取一次值:8:05,8:13,8:21,8:29等等
?:不指定值,就是“我也不知道”的意思,只能出现在“月的某天,星期的某天”项中。在什么情况下用呢?如上例如果指定值为星期一,那么可能会出现如4月5日不是星期一,这里就是不对应,有冲突,所以指定为"?",也就是说我也不知道是星期几,只要是5日与20日就行了,至于是星期几我才不管呢!
L:最后的,last的意思,只能出现在“月的某天,星期的某天”项中。表示当前月或当前星期的最后一天,注意的是星期的最后一天为星期六。
W:月中最接近指定日期的普通日(星期一到星期五),只能出现在“月的某天”,如"15W"就是说当前月最接近15日的普通日,如果当月的15是星期三就是星期三,如果当月的15是星期六那么就是昨天也就是星期五,如果当月的15是星期天则为第二天也就是星期一。
#:当前月的第N个星期X日,只能出现在“星期的某天”项中。如"6#3"就是说当前月的第三个星期五,注意"1-7",1=星期天,2=星期一 等等。
注: Spring整合Quartz提示缺javax.transaction.UserTransaction
quartzSpring
提示缺少:javax.transaction.UserTransaction。
原因是在工程中没有加入jta.jar这个包!
另外附加两个例子,希望对所有人都用帮助
- kingtest.rar (6.8 KB)
- 下载次数: 6
- kingTest2.rar (6.5 KB)
- 下载次数: 3
发表评论
-
习惯的开发错误
2014-09-09 17:25 417在一个包的下面 创建一个test.java 文件 这样一个小 ... -
得到指定年份的所有周末
2014-08-20 18:18 1173/** * 得到指定年份的所有周末 */ publi ... -
对对字符串可能出现报空指针的小问题
2014-04-14 14:42 853今天很是郁闷啊,遇到一个基础的问题比对字符串的两种写法: ... -
Java 单例模式详解(转)
2014-03-26 16:52 793概念: java中单例 ... -
往文件里写入字符串
2014-01-20 13:52 1104package ab; import java.io.Bu ... -
Java数组,去掉重复值、增加、删除数组元素
2014-01-02 14:18 5143import java.util.List; import ... -
java定时器的使用(Timer)
2013-10-14 16:42 2417java定时器的使用(Timer) 2008-02-14 13 ... -
JSch - Java实现的SFTP(文件上传详解篇)(转)
2013-10-14 16:40 3413JSch是Java Secure Channel的缩写。JSc ... -
jvm
2013-09-30 15:03 749网上看到一位javaeye的同志写的文章,感觉总结的比较好,虽 ... -
sftp处理文件
2013-09-30 15:02 8035最近工作涉及sftp处理文件,写了个工具类,代码已经测试。请需 ... -
java BigDecimal的使用和四舍五入及格式规范(精准数据)
2013-06-17 15:37 21555• Java中的简单浮点数类型float和double不能够进 ... -
servlet拦截器代码
2013-03-29 13:45 22111- 实现Servlet.Filter接口 public cl ... -
session 超时的时间设置
2013-03-22 14:47 938为单个Web应用 配置超时时间可以在web.xml中使用< ... -
Calendar 获取日期
2013-01-23 10:44 1286Calendar 获取日期 如果想得到某个星期几是什么日期, ... -
JAVA帮助文档全系列
2013-01-05 11:02 0JAVA帮助文档全系列 JDK1.5 JDK1.6 JD ... -
Cannot create a server using the selected type
2012-08-27 11:02 0eclipse中安装tomcat服务器,报错" Ca ... -
线程池(jdk实现)
2012-07-10 15:01 0Sun在Java5中,对Java线程的类库做了大量的扩展,其中 ... -
遍历集合
2012-06-26 17:28 1044* * To change this template, c ... -
(转)Java 序列化
2012-06-26 14:55 1922当我们需要序列化一个J ... -
权限控制的发散性思维
2012-06-15 17:31 962权限控制的讨论 http://www.iteye.com ...
相关推荐
spring定时调用以及设定时间调用包括jar和源码 spring 定时器 quartz 里面包括源码 配置 即jar还有使用说明 祝大家好运~
Spring定时任务调用配置Spring定时任务调用配置Spring定时任务调用配置Spring定时任务调用配置Spring定时任务调用配置
spring 简介,spring事务控制,Spring注解,spring定时调用,spring线程池,springMVC,quartz,springsecurity,的详细解析文档
举个例子吧 可对仓库库存状况定时检查,并执行删除等其他操作
spring整合quartz定时任务调度..........
NULL 博文链接:https://huanyue.iteye.com/blog/512748
spring动态调度任务,根据用户选择时间进行定时执行任务相关文档配置
SpringBoot的定时调用的加强工具,实现定时任务动态管理,后续加入可视化管-super-scheduled
主要介绍了Spring Boot调用 Shell 脚本实现看门狗功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
定时运行(spring+quartz),可以让程序实现定时调用某个方法
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的...
1.17 Spring Boot定时任务的使用 1.18 Spring Boot使用Druid和监控配置 1.19 Spring Boot使用Druid(编程注入) 1.20 Spring Boot普通类调用bean 1.21 使用模板(thymeleaf-freemarker) 1.22 Spring Boot 添加JSP...
最近要写一个java的定时任务,发现用spring和quartz部署起来最简单,并且可以方便的设置定时时间,这里是一个简单的demo,并配上了注释,简单易懂
代码中包含: 1、spring4.0文件上传 2、spring restful 的webservice构建、以及调用 3、spring schedule定时任务
Springcloud fegin + oauth2 调用,实现token传递,解决fegin调用 ,无权限问题
spring 实现 定时调用程序的方法. 非常实用,非常实用,非常实用。
springboot双数据库定时同步,可以是mysql,SqlServer
- chapter4-1-1:[使用@Scheduled创建定时任务](http://blog.didispace.com/springbootscheduled/) - chapter4-1-2:[使用@Async实现异步调用](http://blog.didispace.com/springbootasync/) #### 日志管理 - ...