無(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)
主站蜘蛛池模板:
国产zzjjzzjj视频全免费
|
成人无遮挡裸免费视频在线观看
|
久久国产精品一区免费下载
|
亚洲美女视频免费
|
少妇高潮太爽了在线观看免费
|
国产一级做a爱免费视频
|
久久精品国产亚洲5555
|
亚洲AV成人片色在线观看
|
亚洲色欲色欲www
|
美女无遮挡免费视频网站
|
中文在线观看永久免费
|
亚洲永久网址在线观看
|
美女免费精品高清毛片在线视
|
青柠影视在线观看免费
|
97国产免费全部免费观看
|
国产又粗又长又硬免费视频
|
亚洲精品乱码久久久久66
|
亚洲国产成人久久三区
|
青娱乐在线视频免费观看
|
99免费观看视频
|
国产免费变态视频网址网站
|
亚洲av永久无码精品表情包
|
亚洲 暴爽 AV人人爽日日碰
|
国产免费内射又粗又爽密桃视频
|
国内精品免费麻豆网站91麻豆
|
久久久久久国产精品免费无码
|
国产情侣激情在线视频免费看
|
免费人成在线观看播放国产
|
久久久亚洲欧洲日产国码农村
|
亚洲一日韩欧美中文字幕在线
|
中文字幕免费在线看线人动作大片
|
国产妇乱子伦视频免费
|
亚洲美女在线国产
|
亚洲w码欧洲s码免费
|
国产免费区在线观看十分钟
|
人禽杂交18禁网站免费
|
亚洲国产精品成人精品无码区
|
亚洲国产精品无码第一区二区三区
|
国产亚洲免费的视频看
|
国产精品美女自在线观看免费
|
久久青青草原亚洲av无码app
|