無(wú)線&移動(dòng)互聯(lián)網(wǎng)技術(shù)研發(fā)
換位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
BlogJava
::
首頁(yè)
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
Quartz 與 Spring 集成使用的實(shí)例
Posted on 2010-05-28 01:13
Gavin.lee
閱讀(919)
評(píng)論(0)
編輯
收藏
所屬分類:
SSH2 --Spring
在前面文章中,有舉出不集成但用Quartz的應(yīng)用,這里,我們通過(guò)Spring 的IOC來(lái)與Quartz集成使用,對(duì)于定時(shí)任務(wù),我們可以讓這個(gè)應(yīng)用做為jar 小工具在linux下跑,也可以將應(yīng)用單獨(dú)放在一個(gè)容器里跑。這個(gè)視情況而定
一下是一個(gè)簡(jiǎn)單的應(yīng)用,quartz + Spring 集成使用的核心就這Spring的配置文件中了
<?
xml version="1.0" encoding="UTF-8"
?>
<
beans
xmlns
="http://www.springframework.org/schema/beans"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context
="http://www.springframework.org/schema/context"
xmlns:aop
="http://www.springframework.org/schema/aop"
xmlns:tx
="http://www.springframework.org/schema/tx"
xsi:schemaLocation
="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
>
<!--
*************************** 工作任務(wù)調(diào)度 ***************************
-->
<!--
要調(diào)用的工作類
-->
<
bean
id
="quartzJob_common"
class
="com.quartz.job.DoJobMethod"
></
bean
>
<!--
可繼續(xù)加新的任務(wù)
-->
<!--
要調(diào)用的工作類結(jié)束
-->
<!--
定義調(diào)用對(duì)象和調(diào)用對(duì)象的方法
-->
<
bean
id
="jobtask1"
class
="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
>
<!--
調(diào)用的類
-->
<
property
name
="targetObject"
>
<
ref
bean
="quartzJob_common"
/>
</
property
>
<!--
調(diào)用類中的方法
-->
<
property
name
="targetMethod"
>
<
value
>
doMethod1
</
value
>
</
property
>
</
bean
>
<
bean
id
="jobtask2"
class
="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
>
<!--
調(diào)用的類
-->
<
property
name
="targetObject"
>
<
ref
bean
="quartzJob_common"
/>
</
property
>
<!--
調(diào)用類中的方法
-->
<
property
name
="targetMethod"
>
<
value
>
doMethod2
</
value
>
</
property
>
</
bean
>
<!--
可繼續(xù)加新的
-->
<!--
定義調(diào)用對(duì)象和調(diào)用對(duì)象的方法結(jié)束
-->
<!--
定義觸發(fā)時(shí)間
-->
<
bean
id
="doTime1"
class
="org.springframework.scheduling.quartz.CronTriggerBean"
>
<
property
name
="jobDetail"
>
<
ref
bean
="jobtask1"
/>
</
property
>
<!--
cron表達(dá)式 此處定義為每天零辰00:15執(zhí)行任務(wù)
-->
<
property
name
="cronExpression"
>
<
value
>
0 15 00 ? * *
</
value
>
<!--
<value>10 * * ? * *</value>
-->
</
property
>
</
bean
>
<
bean
id
="doTime2"
class
="org.springframework.scheduling.quartz.CronTriggerBean"
>
<
property
name
="jobDetail"
>
<
ref
bean
="jobtask2"
/>
</
property
>
<!--
cron表達(dá)式 此處定義每1分鐘觸發(fā)一次
-->
<
property
name
="cronExpression"
>
<
value
>
0 */1 * ? * *
</
value
>
</
property
>
</
bean
>
<
bean
id
="doTime3"
class
="org.springframework.scheduling.quartz.CronTriggerBean"
>
<
property
name
="jobDetail"
>
<
ref
bean
="jobtask3"
/>
</
property
>
<!--
cron表達(dá)式 此處定義每天上午10:30和晚上22:20觸發(fā) 即每半天觸發(fā)一次
-->
<
property
name
="cronExpression"
>
<
value
>
0 30,20 10,22 ? * *
</
value
>
<!--
<value>10 * * ? * *</value>
-->
</
property
>
</
bean
>
<!--
可繼續(xù)加新的
-->
<!--
定義觸發(fā)時(shí)間結(jié)束
-->
<!--
總管理類 如果將lazy-init='false'那么容器啟動(dòng)就會(huì)執(zhí)行調(diào)度程序
-->
<
bean
id
="start_common"
lazy-init
="false"
autowire
="no"
class
="org.springframework.scheduling.quartz.SchedulerFactoryBean"
>
<
property
name
="triggers"
>
<
list
>
<
ref
bean
="doTime1"
/>
<
ref
bean
="doTime2"
/>
<!--
可繼續(xù)加新的
-->
</
list
>
</
property
>
</
bean
>
<!--
總管理類結(jié)束
-->
</
beans
>
下面是一個(gè)調(diào)度器的入口(多線程)
package
com.quartz.job;
/** */
/**
* 任務(wù)調(diào)度的其中一個(gè)入口
* 這個(gè)入口類需要這Spring配置文件contextApplication.xml中定義
* 這個(gè)入口類可以定義一個(gè)或多個(gè)
* 該類里的方法,將會(huì)有單獨(dú)的線程來(lái)運(yùn)行
*
@author
Administrator
*
*/
public
class
DoJobMethod
{
public
void
doMethod1()
{
System.out.println(
"
我是任務(wù)調(diào)度的第一個(gè)方法
"
);
}
public
void
doMethod2()
{
System.out.println(
"
我是任務(wù)調(diào)度的第二個(gè)方法
"
);
}
}
后話就不用多說(shuō)了,要這web.xml里配置啟動(dòng)加載spring配置文件
<?
xml version="1.0" encoding="UTF-8"
?>
<
web-app
version
="2.4"
xmlns
="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
<
listener
>
<
listener-class
>
org.springframework.web.context.ContextLoaderListener
</
listener-class
>
</
listener
>
<
context-param
>
<
param-name
>
contextConfigLocation
</
param-name
>
<
param-value
>
/WEB-INF/applicationContext.xml
</
param-value
>
</
context-param
>
</
web-app
>
這里要說(shuō)一個(gè)小事,我們經(jīng)常在這里定義的觸發(fā)器條件都是比較有規(guī)律的,如果你想做到在容器初始化時(shí)候調(diào)用一下這個(gè)任務(wù),就需要一個(gè)過(guò)濾器來(lái)監(jiān)聽(tīng)容器,用以初始化。也問(wèn)了前輩,好像還沒(méi)有什么更好的辦法,如果你有的話,希望不惜賜教
PS:剛想到一個(gè)辦法,在spring容器初始化這個(gè)jobbean時(shí)候,指定一個(gè)init-method。在這個(gè)方法里調(diào)用其他的任務(wù)方法,這樣可以簡(jiǎn)單解決容器初始化時(shí)候做任務(wù)
1. 指定init-method
<!--
要調(diào)用的工作類
-->
<
bean
id
="quartzJob_common"
class
="com.quartz.job.DoJobMethod"
init-method
="doMethod"
></
bean
>
2. 這init-method里調(diào)用任務(wù)方法
public
class
DoJobMethod
{
public
void
doMethod()
{
doMethod1();
doMethod2();
}
public
void
doMethod1()
{
System.out.println(
"
我是任務(wù)調(diào)度的第一個(gè)方法
"
);
}
public
void
doMethod2()
{
System.out.println(
"
我是任務(wù)調(diào)度的第二個(gè)方法
"
);
}
}
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
相關(guān)文章:
Quartz cron 表達(dá)式格式的含義
Spring AOP詳細(xì)導(dǎo)讀-用多手段實(shí)例對(duì)比呈現(xiàn)AOP
Quartz 與 Spring 集成使用的實(shí)例
Spring Quartz 任務(wù)調(diào)度存儲(chǔ)信息(三)
Spring Quartz Trigger 和表達(dá)式(二)
Spring Quartz 框架結(jié)構(gòu)概述(一)
Spring IOC/DI/注解-理論與實(shí)例并存
java 組件式的任務(wù)調(diào)度---Quartz
在java中利用JDK自帶的TimerTask實(shí)現(xiàn)定時(shí)任務(wù)
Powered by:
BlogJava
Copyright © Gavin.lee
日歷
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的文章
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(13)
給我留言
查看公開(kāi)留言
查看私人留言
我參與的團(tuán)隊(duì)
深圳Java俱樂(lè)部(0/0)
隨筆檔案
(19)
2011年6月 (1)
2011年5月 (1)
2010年12月 (1)
2010年5月 (1)
2010年1月 (1)
2009年8月 (2)
2009年6月 (6)
2009年5月 (6)
文章分類
(277)
Date tools(4)
FreeMarker (7)
java design pattern(3)
java SE & EE(60)
JDBC(14)
jsp 【勿忘】(5)
Linux command(7)
Linux shell 入門(mén)(11)
Linux 日常應(yīng)用(5)
Log && File Operate(8)
MemCache (5)
SiteMesh 頁(yè)面裝飾組件(2)
SSH2 --Hibernate(6)
SSH2 --Spring(9)
SSH2 --Struts2(21)
Subversion(Svn)(5)
wap 積累(8)
web 積累(前端 + 后臺(tái))(33)
xml doc 操作(12)
多線程(6)
性能分析(7)
類的設(shè)計(jì)(4)
經(jīng)典語(yǔ)錄(3)
經(jīng)驗(yàn)&常識(shí)(32)
文章檔案
(282)
2011年7月 (1)
2011年6月 (1)
2011年5月 (1)
2011年4月 (1)
2011年3月 (1)
2011年2月 (1)
2010年12月 (6)
2010年11月 (8)
2010年10月 (1)
2010年9月 (6)
2010年6月 (7)
2010年5月 (22)
2010年4月 (1)
2010年3月 (14)
2010年2月 (2)
2010年1月 (10)
2009年12月 (32)
2009年11月 (30)
2009年10月 (2)
2009年9月 (5)
2009年8月 (13)
2009年7月 (41)
2009年6月 (43)
2009年5月 (33)
收藏夾
(7)
java 基礎(chǔ)類(1)
JSP(1)
server(2)
WEB(1)
數(shù)據(jù)庫(kù)
設(shè)計(jì)模式(2)
友情鏈接
blogjava中的強(qiáng)人
chinaunix 社區(qū)
java 世紀(jì)網(wǎng)
java 基礎(chǔ)輔導(dǎo)文章
javaeye 藍(lán)色的風(fēng)
SQL語(yǔ)句教程
與java共舞
中國(guó)協(xié)議分析網(wǎng)
中文java技術(shù)網(wǎng)
多線程
待看的文章
感興趣的 csdn
我的漫漫程序之旅
新起點(diǎn),新開(kāi)始
夢(mèng)幻之旅
趙學(xué)慶 的博客
超級(jí)多文章的牛人
隔葉黃鶯 The Blog of Unmi
高手論壇
最新隨筆
1.?Mysql:1292 truncated incorrect double value -- concat 函數(shù)用法
2.?Mysql 插入當(dāng)前時(shí)間【摘】
3.?學(xué)計(jì)算機(jī)的你傷不起啊【雷人】
4.?ucweb和opera工作原理的差別【摘】
5.?清朝皇帝列表
6.?設(shè)置IE查看源文件時(shí)默認(rèn)打開(kāi)的編輯器【轉(zhuǎn)】
7.?subclipse svn修改用戶名密碼問(wèn)題【摘】
8.?hibernate.dialect (Hibernate SQL方言)-備用
9.?Tomcat JspFactory的異常的原因及解決辦法
10.?關(guān)于MyEclipse中的Tomcat啟動(dòng)的問(wèn)題 【Tomcat JDK name error】
11.?win-xp 自動(dòng)關(guān)機(jī)腳本 【古老的記憶】
12.?Office 2007 Word 打開(kāi)故障 - "The setup controller has encountered a problem during instll"
13.?木匠家的門(mén)
14.?MyEclipse 后臺(tái)進(jìn)程一直運(yùn)行"computing additional info"的解決辦法
15.?MyEclipse 一直 initializing java tooling······
16.?MyEclipse 代碼提示(“@”自動(dòng)提示)
17.?org.hibernate.hql.ast.QuerySyntaxException(我的流水賬)
18.?org.hibernate.hql.antlr.HqlBaseParser.recover(NoSuchMethodError)
19.?SVN:cannot map the project with svn provider解決辦法
20.?WAP1.0 前端開(kāi)發(fā)經(jīng)驗(yàn)(原創(chuàng)-JSP)
21.?Notepad++提示"Load langs.xml failed!"的解決方法
22.?讓你的PC也能訪問(wèn)手機(jī)騰訊網(wǎng)
23.?【轉(zhuǎn)】Proxool 連接池的配置-hibernate篇
24.?Hibernate 主鍵生成策略
25.?Quartz cron 表達(dá)式格式的含義
26.?OGNL功用!!!
27.?使用Appfuse快速構(gòu)建J2EE應(yīng)用
28.?大型門(mén)戶網(wǎng)站的十四大技術(shù)!!!
29.?Urlrewrite與Struts2.x結(jié)合使用
30.?HttpWatch的檢測(cè)指示說(shuō)明:Blocked、Connect、Send、Wait、Receive
31.?解讀JAR,SIS,SISX格式區(qū)別!!!
32.?commons-lang-2.4.jar 包常用方法集錦
33.?Struts2中解決一個(gè)表單多種提交
34.?JSTL(Java Standard Tag Library) 標(biāo)記庫(kù)的使用
35.?Struts2驗(yàn)證錯(cuò)誤信息的兩個(gè)經(jīng)典方法-addFieldError&addActionError
36.?Hibernate常見(jiàn)異常-無(wú)法轉(zhuǎn)換為內(nèi)部表示
37.?Spring AOP詳細(xì)導(dǎo)讀-用多手段實(shí)例對(duì)比呈現(xiàn)AOP
38.?Struts2 Result-type(封裝Action層到View層的跳轉(zhuǎn)邏輯)
39.?在Struts2中以IOC和非IOC方式獲取session&request
40.?采用url鏈接形式提交action(非s:from方式提交)
搜索
積分與排名
積分 - 356196
排名 - 156
最新評(píng)論
1.?re: Struts2驗(yàn)證錯(cuò)誤信息的兩個(gè)經(jīng)典方法-addFieldError&addActionError
S2C4
--asdad
2.?re: Struts2驗(yàn)證錯(cuò)誤信息的兩個(gè)經(jīng)典方法-addFieldError&addActionError[未登錄](méi)
asd
--as
3.?21232.2323
323432432
--馮海波
4.?re: SVN:cannot map the project with svn provider解決辦法[未登錄](méi)
多謝!已經(jīng)解決。
--will
5.?re: Struts2驗(yàn)證錯(cuò)誤信息的兩個(gè)經(jīng)典方法-addFieldError&addActionError
44
--2
閱讀排行榜
1.?學(xué)計(jì)算機(jī)的你傷不起啊【雷人】(1020)
2.?看看這個(gè)笑話,你就知道干IT的不容易了!!(623)
3.?清朝皇帝列表(616)
4.? 每天讀一遍,不久你就會(huì)變! ---- 很好很強(qiáng)大(469)
5.?木匠家的門(mén)(423)
評(píng)論排行榜
1.?學(xué)計(jì)算機(jī)的你傷不起啊【雷人】(0)
2.?清朝皇帝列表(0)
3.?木匠家的門(mén)(0)
4.? 每天讀一遍,不久你就會(huì)變! ---- 很好很強(qiáng)大(0)
5.?我喜歡的語(yǔ)錄(0)
主站蜘蛛池模板:
91人人区免费区人人
|
久久爰www免费人成
|
国产精品无码素人福利免费
|
亚洲国产精品成人综合久久久
|
99视频有精品视频免费观看
|
亚洲精品无码不卡
|
亚洲最大免费视频网
|
亚洲成综合人影院在院播放
|
噼里啪啦免费观看高清动漫4
|
亚洲香蕉在线观看
|
免费网站看v片在线香蕉
|
看免费毛片天天看
|
亚洲熟妇av一区二区三区
|
99久久国产精品免费一区二区
|
久久综合九九亚洲一区
|
h视频在线免费看
|
亚洲国产无线乱码在线观看
|
国产成人免费a在线视频色戒
|
一区免费在线观看
|
亚洲国产精品久久久久网站
|
免费可以看黄的视频s色
|
亚洲Av永久无码精品黑人
|
国产亚洲精品无码专区
|
无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看
|
日韩国产免费一区二区三区
|
国产午夜亚洲精品
|
最新精品亚洲成a人在线观看
|
四虎影视在线影院在线观看免费视频
|
午夜亚洲福利在线老司机
|
精品国产呦系列在线观看免费
|
亚洲欧洲日产国码久在线观看
|
黄色网址免费观看
|
国产精品亚洲专区无码牛牛
|
91麻豆国产自产在线观看亚洲
|
一区二区三区福利视频免费观看
|
亚洲人成电影网站久久
|
亚洲熟妇av一区二区三区
|
18禁无遮挡无码网站免费
|
久久久久久噜噜精品免费直播
|
亚洲免费在线观看视频
|
亚洲色偷偷综合亚洲AV伊人
|