無線&移動互聯網技術研發
換位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
Quartz 與 Spring 集成使用的實例
Posted on 2010-05-28 01:13
Gavin.lee
閱讀(919)
評論(0)
編輯
收藏
所屬分類:
SSH2 --Spring
在前面文章中,有舉出不集成但用Quartz的應用,這里,我們通過Spring 的IOC來與Quartz集成使用,對于定時任務,我們可以讓這個應用做為jar 小工具在linux下跑,也可以將應用單獨放在一個容器里跑。這個視情況而定
一下是一個簡單的應用,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"
>
<!--
*************************** 工作任務調度 ***************************
-->
<!--
要調用的工作類
-->
<
bean
id
="quartzJob_common"
class
="com.quartz.job.DoJobMethod"
></
bean
>
<!--
可繼續加新的任務
-->
<!--
要調用的工作類結束
-->
<!--
定義調用對象和調用對象的方法
-->
<
bean
id
="jobtask1"
class
="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
>
<!--
調用的類
-->
<
property
name
="targetObject"
>
<
ref
bean
="quartzJob_common"
/>
</
property
>
<!--
調用類中的方法
-->
<
property
name
="targetMethod"
>
<
value
>
doMethod1
</
value
>
</
property
>
</
bean
>
<
bean
id
="jobtask2"
class
="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
>
<!--
調用的類
-->
<
property
name
="targetObject"
>
<
ref
bean
="quartzJob_common"
/>
</
property
>
<!--
調用類中的方法
-->
<
property
name
="targetMethod"
>
<
value
>
doMethod2
</
value
>
</
property
>
</
bean
>
<!--
可繼續加新的
-->
<!--
定義調用對象和調用對象的方法結束
-->
<!--
定義觸發時間
-->
<
bean
id
="doTime1"
class
="org.springframework.scheduling.quartz.CronTriggerBean"
>
<
property
name
="jobDetail"
>
<
ref
bean
="jobtask1"
/>
</
property
>
<!--
cron表達式 此處定義為每天零辰00:15執行任務
-->
<
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表達式 此處定義每1分鐘觸發一次
-->
<
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表達式 此處定義每天上午10:30和晚上22:20觸發 即每半天觸發一次
-->
<
property
name
="cronExpression"
>
<
value
>
0 30,20 10,22 ? * *
</
value
>
<!--
<value>10 * * ? * *</value>
-->
</
property
>
</
bean
>
<!--
可繼續加新的
-->
<!--
定義觸發時間結束
-->
<!--
總管理類 如果將lazy-init='false'那么容器啟動就會執行調度程序
-->
<
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"
/>
<!--
可繼續加新的
-->
</
list
>
</
property
>
</
bean
>
<!--
總管理類結束
-->
</
beans
>
下面是一個調度器的入口(多線程)
package
com.quartz.job;
/** */
/**
* 任務調度的其中一個入口
* 這個入口類需要這Spring配置文件contextApplication.xml中定義
* 這個入口類可以定義一個或多個
* 該類里的方法,將會有單獨的線程來運行
*
@author
Administrator
*
*/
public
class
DoJobMethod
{
public
void
doMethod1()
{
System.out.println(
"
我是任務調度的第一個方法
"
);
}
public
void
doMethod2()
{
System.out.println(
"
我是任務調度的第二個方法
"
);
}
}
后話就不用多說了,要這web.xml里配置啟動加載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
>
這里要說一個小事,我們經常在這里定義的觸發器條件都是比較有規律的,如果你想做到在容器初始化時候調用一下這個任務,就需要一個過濾器來監聽容器,用以初始化。也問了前輩,好像還沒有什么更好的辦法,如果你有的話,希望不惜賜教
PS:剛想到一個辦法,在spring容器初始化這個jobbean時候,指定一個init-method。在這個方法里調用其他的任務方法,這樣可以簡單解決容器初始化時候做任務
1. 指定init-method
<!--
要調用的工作類
-->
<
bean
id
="quartzJob_common"
class
="com.quartz.job.DoJobMethod"
init-method
="doMethod"
></
bean
>
2. 這init-method里調用任務方法
public
class
DoJobMethod
{
public
void
doMethod()
{
doMethod1();
doMethod2();
}
public
void
doMethod1()
{
System.out.println(
"
我是任務調度的第一個方法
"
);
}
public
void
doMethod2()
{
System.out.println(
"
我是任務調度的第二個方法
"
);
}
}
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Quartz cron 表達式格式的含義
Spring AOP詳細導讀-用多手段實例對比呈現AOP
Quartz 與 Spring 集成使用的實例
Spring Quartz 任務調度存儲信息(三)
Spring Quartz Trigger 和表達式(二)
Spring Quartz 框架結構概述(一)
Spring IOC/DI/注解-理論與實例并存
java 組件式的任務調度---Quartz
在java中利用JDK自帶的TimerTask實現定時任務
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
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(13)
給我留言
查看公開留言
查看私人留言
我參與的團隊
深圳Java俱樂部(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 入門(11)
Linux 日常應用(5)
Log && File Operate(8)
MemCache (5)
SiteMesh 頁面裝飾組件(2)
SSH2 --Hibernate(6)
SSH2 --Spring(9)
SSH2 --Struts2(21)
Subversion(Svn)(5)
wap 積累(8)
web 積累(前端 + 后臺)(33)
xml doc 操作(12)
多線程(6)
性能分析(7)
類的設計(4)
經典語錄(3)
經驗&常識(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 基礎類(1)
JSP(1)
server(2)
WEB(1)
數據庫
設計模式(2)
友情鏈接
blogjava中的強人
chinaunix 社區
java 世紀網
java 基礎輔導文章
javaeye 藍色的風
SQL語句教程
與java共舞
中國協議分析網
中文java技術網
多線程
待看的文章
感興趣的 csdn
我的漫漫程序之旅
新起點,新開始
夢幻之旅
趙學慶 的博客
超級多文章的牛人
隔葉黃鶯 The Blog of Unmi
高手論壇
最新隨筆
1.?Mysql:1292 truncated incorrect double value -- concat 函數用法
2.?Mysql 插入當前時間【摘】
3.?學計算機的你傷不起啊【雷人】
4.?ucweb和opera工作原理的差別【摘】
5.?清朝皇帝列表
6.?設置IE查看源文件時默認打開的編輯器【轉】
7.?subclipse svn修改用戶名密碼問題【摘】
8.?hibernate.dialect (Hibernate SQL方言)-備用
9.?Tomcat JspFactory的異常的原因及解決辦法
10.?關于MyEclipse中的Tomcat啟動的問題 【Tomcat JDK name error】
11.?win-xp 自動關機腳本 【古老的記憶】
12.?Office 2007 Word 打開故障 - "The setup controller has encountered a problem during instll"
13.?木匠家的門
14.?MyEclipse 后臺進程一直運行"computing additional info"的解決辦法
15.?MyEclipse 一直 initializing java tooling······
16.?MyEclipse 代碼提示(“@”自動提示)
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 前端開發經驗(原創-JSP)
21.?Notepad++提示"Load langs.xml failed!"的解決方法
22.?讓你的PC也能訪問手機騰訊網
23.?【轉】Proxool 連接池的配置-hibernate篇
24.?Hibernate 主鍵生成策略
25.?Quartz cron 表達式格式的含義
26.?OGNL功用!??!
27.?使用Appfuse快速構建J2EE應用
28.?大型門戶網站的十四大技術?。?!
29.?Urlrewrite與Struts2.x結合使用
30.?HttpWatch的檢測指示說明:Blocked、Connect、Send、Wait、Receive
31.?解讀JAR,SIS,SISX格式區別?。。?/a>
32.?commons-lang-2.4.jar 包常用方法集錦
33.?Struts2中解決一個表單多種提交
34.?JSTL(Java Standard Tag Library) 標記庫的使用
35.?Struts2驗證錯誤信息的兩個經典方法-addFieldError&addActionError
36.?Hibernate常見異常-無法轉換為內部表示
37.?Spring AOP詳細導讀-用多手段實例對比呈現AOP
38.?Struts2 Result-type(封裝Action層到View層的跳轉邏輯)
39.?在Struts2中以IOC和非IOC方式獲取session&request
40.?采用url鏈接形式提交action(非s:from方式提交)
搜索
積分與排名
積分 - 356351
排名 - 156
最新評論
1.?re: Struts2驗證錯誤信息的兩個經典方法-addFieldError&addActionError
S2C4
--asdad
2.?re: Struts2驗證錯誤信息的兩個經典方法-addFieldError&addActionError[未登錄]
asd
--as
3.?21232.2323
323432432
--馮海波
4.?re: SVN:cannot map the project with svn provider解決辦法[未登錄]
多謝!已經解決。
--will
5.?re: Struts2驗證錯誤信息的兩個經典方法-addFieldError&addActionError
44
--2
閱讀排行榜
1.?學計算機的你傷不起啊【雷人】(1020)
2.?看看這個笑話,你就知道干IT的不容易了??!(623)
3.?清朝皇帝列表(617)
4.? 每天讀一遍,不久你就會變! ---- 很好很強大(469)
5.?木匠家的門(423)
評論排行榜
1.?學計算機的你傷不起啊【雷人】(0)
2.?清朝皇帝列表(0)
3.?木匠家的門(0)
4.? 每天讀一遍,不久你就會變! ---- 很好很強大(0)
5.?我喜歡的語錄(0)
主站蜘蛛池模板:
亚洲免费无码在线
|
99在线观看免费视频
|
亚洲av综合avav中文
|
va亚洲va日韩不卡在线观看
|
性生大片视频免费观看一级
|
亚洲午夜精品久久久久久人妖
|
免费国产黄线在线观看
|
久久精品九九亚洲精品
|
日本高清免费不卡在线
|
日韩免费电影网站
|
亚洲AV无码一区二区三区久久精品
|
国产亚洲精品成人AA片新蒲金
|
亚洲国产欧美一区二区三区
|
亚洲区日韩区无码区
|
日韩一区二区a片免费观看
|
福利免费在线观看
|
亚洲人成色777777精品
|
亚洲AV永久无码精品水牛影视
|
在线观看免费毛片
|
久久香蕉国产线看免费
|
国产精品亚洲专区一区
|
久久精品九九亚洲精品
|
激情综合色五月丁香六月亚洲
|
在线观看人成视频免费
|
久久久高清日本道免费观看
|
国产乱弄免费视频
|
www视频在线观看免费
|
国产91在线|亚洲
|
亚洲av无码精品网站
|
免费大黄网站在线看
|
青青青国产免费一夜七次郎
|
永久在线免费观看
|
久久福利青草精品资源站免费
|
美女视频黄a视频全免费网站色
|
日韩欧美一区二区三区免费观看
|
3344在线看片免费
|
人体大胆做受免费视频
|
亚洲国产无线乱码在线观看
|
亚洲乱码中文字幕小综合
|
亚洲国产精品无码久久SM
|
国产亚洲av片在线观看18女人
|