日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring使用Quartz配置调度事务

發布時間:2025/6/15 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring使用Quartz配置调度事务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package?QuartzTest;

import?java.util.Date;

public?class?CourseService?...{
???
public?void?start()...{
???????System.out.println(
new?Date().getSeconds());
???}

}

編寫調度類,需要繼承QuartzJobBean : package?QuartzTest;

import?org.quartz.JobExecutionContext;
import?org.quartz.JobExecutionException;
import?org.springframework.scheduling.quartz.QuartzJobBean;


public?class?QuartzJob?extends?QuartzJobBean?...{????
????
????
protected?void?executeInternal(JobExecutionContext?arg0)?throws?JobExecutionException?...{
????????courseService.start();
????}


????
private?CourseService?courseService;

????
public?CourseService?getCourseService()?...{
????????
return?courseService;
????}


????
public?void?setCourseService(CourseService?courseService)?...{
????????
this.courseService?=?courseService;
????}

????

}

編寫配置文件 需要說明的是,我們有兩種trigger,分別是simple和cron模式,simple方式和timertask類似,采用設置interval方式進行調度,而cron可以特有的語法很詳細的定制調度執行時間,具體描述在配置文件的注釋中 <?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="courseService"?class="QuartzTest.CourseService"/>
???
<!--?創建調度任務?使用單獨編寫的調度類QuartzJob????-->
???
<bean?id="reportJbo"?class="org.springframework.scheduling.quartz.JobDetailBean">
?????
<property?name="jobClass">
???????
<value>QuartzTest.QuartzJob</value>
?????
</property>
?????
<property?name="jobDataAsMap">
???????
<map> ???????? <!--采用jobDataAsMap方式進行courseService注入-->
?????????
<entry?key="courseService">
???????????
<ref?bean="courseService"/>
??????????
</entry>
???????
</map>
?????
</property>
???
</bean>

???
<!--?創建調度任務?使用已有的service類方法,不需要單獨編寫調度類QuartzJob?
???<bean?id="reportJbo"?class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
?????<property?name="targetObject">
??????<ref?bean="courseService"/>
?????</property>
?????<property?name="targetMethod">
????????<value>start</value>
?????</property>
???</bean>
????
-->
???
<!--?配置調度任務,簡單模式???-->
???
<bean?id="simpleReportTrigger"?class="org.springframework.scheduling.quartz.SimpleTriggerBean">
??????
<property?name="jobDetail">
????????
<ref?bean="reportJbo"/>
??????
</property>
??????
<property?name="repeatInterval">
????????
<value>1000</value>
??????
</property>
???
</bean>
?
???
<!--?配置調度任務,復雜定制模式,月份中的日期和星期不能同時設置???-->
???
<bean?id="cronReportTrigger"?class="org.springframework.scheduling.quartz.CronTriggerBean">
??????
<property?name="jobDetail">
????????
<ref?bean="reportJbo"/>
??????
</property>
??????
<property?name="cronExpression">
????????
<value>02?20?21?7?6???2007</value>?
????????
<!--?1.秒?0-59
?????????????2.分鐘?0-59
?????????????3.小時?0-23
?????????????4.月份中的日期?1-31
?????????????5.月份?1-12或者Jan?Feb?Mar?Apr?May?Jun?Jul?Aug?Sept?Oct?Nov?Dec
?????????????6.星期中的日期?1-7或者MON,TUE,WED,THU,FRI,SAT,SUN.
????????
-->
??????
</property>
???
</bean>
?
???
<!--?啟動調度?-->
???
<bean?id="start"?class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
?????
<property?name="triggers">
???????
<list>
?????????
<ref?bean="cronReportTrigger"/>
???????
</list>
?????
</property>
???
</bean>
</beans>

Spring還為我們提供了更簡單的加載調度的方式,也就說我們在已經有業務方法CourseService時不需要再額外編寫調度類QuartzJob,可以直接配置service的方法 <bean id="reportJbo" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
???? <property name="targetObject">
????? <ref bean="courseService"/>
???? </property>
???? <property name="targetMethod">
??????? <value>start</value>
???? </property>
?? </bean>

轉載于:https://blog.51cto.com/czjmagod/275197

總結

以上是生活随笔為你收集整理的Spring使用Quartz配置调度事务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。