- 浏览: 391615 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
Nabulio:
写的详细,特殊语法学习到了
jdk1.5-1.9新特性 -
wooddawn:
您好,最近在做个足球数据库系统,用到了betbrain的数据表 ...
javascript深入理解js闭包 -
lwpan:
很受启发 update也可以
mysql 的delete from 子查询限制 -
wuliaolll:
不错,总算找到原因了
mysql 的delete from 子查询限制
第一步:导入相关jar包
(注:单单是在后台执行需要的jar包,若是经过tomcat执行,需额外添加一个jar包——jta-1.1.jar)
不同版本需要依赖的jar:
quartz-all-1.6.0.jar版本需要的jar包:
commons-collections-3.2.jar
commons-logging-1.1.1.jar
log4j-1.2.16.jar
spring.jar
quartz-1.8.4.jar版本需要的jar包:
commons-collections-3.2.jar
commons-logging-1.1.1.jar
log4j-1.2.16.jar
quartz-1.8.4.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
spring.jar
第二步: 新建立一个业务bean-->cn.yulon.service.MessageService
package cn.yulon.service;
public class MessageService {
int i;
public void printLog(){
i++;
System.out.println("this is my timer:" +i);
}
第三步:在Spring配置文件time-bean.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 id="messageService" class="cn.yulon.service.MessageService" />
<!-- 第二步: 定义好具体要使用类的哪一个业务方法 -->
<bean id="printTimerJob"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 目标bean -->
<property name="targetObject" ref="messageService" />
<!-- 要执行目标bean的哪一个业务方法 -->
<property name="targetMethod" value="printLog" />
<!-- 是否并发 -->
<property name="concurrent" value="false"/>
</bean>
<!-- 第三步: 定义好调用模式: 如每隔2秒钟调用一次或每天的哪个时间调用一次等 -->
<bean id="printTimerTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="printTimerJob" />
<property name="cronExpression" value="0/2 * * * * ?" />
</bean>
<!-- 启动定时器 -->
<!--第四步 把定义好的任务放到调度(Scheduler)工厂里面,注意这里的ref bean -->
<bean id="schedulerFactoryBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="applicationContextSchedulerContextKey" value="applicationContext"/>
<property name="triggers">
<list>
<ref bean="printTimerTrigger" />
</list>
</property>
</bean>
<!-- end -->
</beans>
相关介绍:
<!--
在xml里配置值得关注的是<property name="cronExpression" value="0/1 * * * * ? "/>表示每隔一秒钟执行一次,例子如下:
0 0 10,14,16 * * 每天上午10点,下午2点和下午4点
0 0,15,30,45 * 1-10 * 每月前10天每隔15分钟
30 0 0 1 1 2012 在2012年1月1日午夜过30秒时
0 0 8-5 * MON-FRI 每个工作日的工作时间
- 区间
* 通配符 你不想设置那个字段
-->
<!--
cronExpression的介绍:
按顺序 <value> 秒 分 小时 日期 月份 星期 年<value>
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年 (可选)留空,1970-2099 , - * /
“*”字符被用来指定所有的值。如:”*“在分钟的字段域里表示“每分钟”。
-->
在xml里配置值得关注的是<property name="cronExpression" value="0/1 * * * * ? "/>表示每隔一秒钟执行一次,例子如下:
0 0 10,14,16 * * 每天上午10点,下午2点和下午4点
0 0,15,30,45 * 1-10 * 每月前10天每隔15分钟
30 0 0 1 1 2012 在2012年1月1日午夜过30秒时
0 0 8-5 * MON-FRI 每个工作日的工作时间
- 区间
* 通配符 你不想设置那个字段
第四步:新建测试类SpringTest
package cn.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest {
public static void main(String[] args) {
ApplicationContext act = new ClassPathXmlApplicationContext("time-bean.xml");
}
}
运行结果如下 :
this is my timer:1
this is my timer:2
this is my timer:3
this is my timer:4
this is my timer:5
web.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 加载spring的配置文件(一个或者多个) -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:time-bean.xml,applicationContext*.xml</param-value>
</context-param>
<!-- 配置spring监听器(作用就是启动Web容器时,自动装配applicationContext.xml文件的配置信息) -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
应用场合: 如做一些定时提醒,定时发送邮件、短信,日志定时备份等应用
发表评论
-
将json格式的字符数组转为List对象
2015-08-10 15:18 910使用的是json-lib.jar包 将json格式的字符数组 ... -
用httpPost对JSON发送和接收的例子
2015-08-10 11:16 1106HTTPPost发送JSON: private static ... -
zookeeper适用场景:zookeeper解决了哪些问题
2015-07-31 18:01 766问题导读: 1.master挂机 ... -
java泛型
2015-07-29 10:48 774什么是泛型? 泛型(Ge ... -
Java线程Dump分析工具--jstack
2015-06-23 11:09 731jstack用于打印出给定的java进程ID或core fil ... -
什么是spark?
2015-04-10 09:37 499关于Spark: Spark是UC Berkeley AM ... -
dubbo 教程
2015-04-09 19:21 785先给出阿里巴巴dubbo的 ... -
jre/bin目录下面工具说明
2015-03-20 16:45 638jre/bin目录下面工具说明 ... -
JVM系列三:JVM参数设置、分析
2015-01-30 11:18 705不管是YGC还 ... -
jstat使用
2015-01-27 11:11 682jstat 1. jstat -gc pid ... -
查看java堆栈情况(cpu占用过高)
2015-01-27 11:10 7491. 确定占用cpu高的线程id: 方法一: 直接使用 ps ... -
慎用ArrayList的contains方法,使用HashSet的contains方法代替
2015-01-20 14:14 1151在启动一个应用的时候,发现其中有一处数据加载要数分钟,刚开始 ... -
Java虚拟机工作原理详解
2015-01-16 10:00 724一、类加载器首先来 ... -
jdk1.5-1.9新特性
2014-11-11 10:22 83661.51.自动装箱与拆箱:2.枚举(常用来设计单例模式 ... -
java动态代理(JDK和cglib)
2014-09-24 15:51 480JAVA的动态代理 代理模式 代理模式是常用的java设计 ... -
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
2014-09-24 15:45 703class文件简介及加载 Java编译器编译 ... -
怎么用github下载资源
2014-09-24 11:18 4581、下载github:到http://windows. ... -
maven项目时jar包没有到lib目录下
2014-09-01 20:05 2605在建项目时路径都设置好了,为什么在eclipse中运行mav ... -
使用并行计算大幅提升递归算法效率
2014-08-27 15:04 608前言: 无论什么样的 ... -
JAVA 实现FTP
2014-08-22 14:41 709一个JAVA 实现FTP功能的代码,包括了服务器的设置模块, ...
相关推荐
Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...
Spring Quartz 定时器示例(Web工程版),欢迎下载。
在IT行业中,定时任务是许多系统不可...两者各有优劣,Spring内置定时器简单易用,适合轻量级的定时需求;而Quartz功能强大,适用于复杂的定时场景,但配置和管理相对复杂。根据项目需求选择合适的定时器方案至关重要。
Spring Quartz定时器是Java开发中常用的一个任务调度框架,它结合了Spring框架的强大功能与Quartz的灵活性,使得开发者能够方便地在应用中实现定时任务。在这个压缩包中,包含了三个核心的jar文件:`quartz-all-...
Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器
Quartz本身是一个功能强大的任务调度框架,而Spring通过提供一些便利的类和工具,进一步简化了在Spring环境中使用Quartz的过程。 首先,为了使用Spring Quartz,你需要引入必要的依赖。在上述例子中,至少需要`...
Spring通过提供FactoryBean类和一些辅助工具,使得在Spring容器中使用Quartz变得更加简单。 首先,要在项目中引入Spring和Quartz的相关依赖,通常需要`spring.jar`以及Quartz的jar包,如`quartz-all-1.6.6.jar`。...
本篇文章将深入探讨如何在Spring框架中简单实现Quartz定时器,并结合源码和工具来帮助理解其工作原理。 首先,让我们了解Spring与Quartz的集成。Spring提供了对Quartz的全面支持,使得在Spring应用中配置和管理定时...
- Spring通过提供`org.springframework.scheduling.quartz`包来简化Quartz的配置和管理。通过Spring,我们可以利用IoC(控制反转)和AOP(面向切面编程)的优势,使任务调度更加灵活和可维护。 3. **Spring配置...
### Quartz定时器介绍与简单使用 #### 1.1 Quartz介绍 Quartz 是一款功能强大的开源任务调度框架,它完全采用 Java 编写而成。该框架允许开发人员以灵活的方式定义作业及其触发规则,从而实现对任务的定时调度。...
4. **启动和停止定时器**:在Spring应用启动时,由于配置了`autoStartup="true"`,Quartz定时器会自动启动。若需手动控制,可以使用ApplicationContext获取Scheduler实例并调用其`start()`或`standby()`方法来启动或...
本文将深入探讨如何使用Spring整合Quartz来实现定时器,并提供相关代码示例。 首先,理解Spring框架。Spring是一个开源的Java平台,它提供了全面的企业级应用程序开发解决方案,包括依赖注入(DI)、面向切面编程...
在Spring中集成Quartz,首先需要在项目的类路径下添加这三个jar包,然后通过Spring的配置文件来声明Quartz的相关bean。你可以定义`SchedulerFactoryBean`来创建调度器,`JobDetailBean`来定义作业,以及`...
在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨Quartz定时器的配置与使用,尤其是其时间设置的...
首先,要使用Spring的Quartz定时器,你需要确保引入了以下核心的jar包: 1. `quartz.jar`:这是Quartz的核心库,包含了Quartz的调度器、作业、触发器等核心组件。 2. `spring-context-support.jar`:Spring框架提供...
总的来说,Spring集成Quartz提供了灵活的定时任务解决方案,但同时需要注意避免配置错误和并发问题,以防止任务被执行多次。通过理解Quartz的工作原理和Spring的定时任务API,我们可以有效地管理定时任务,确保它们...
总结,Spring Boot集成Quartz定时器能够方便地创建和管理定时任务,同时利用Spring的依赖注入,使得Job可以灵活地调用其他服务或组件。这种方式使得我们的任务更加模块化和易于维护。在实际开发中,根据项目需求,...
为了更好地理解Cron表达式的实际应用,下面提供了一个简单的Spring Boot项目示例,用于演示如何配置和使用Cron定时任务。 ```java import org.springframework.scheduling.annotation.Scheduled; import org.spring...
通过查看这些文件,你可以更具体地了解如何将Spring 2.0和Quartz 1.6整合在一起,以及如何编写和配置定时任务。如果你遇到任何问题或需要进一步的指导,可以参考Quartz和Spring的官方文档,或者寻求社区的帮助。