1. 程式人生 > 其它 >Quartz丨整合Spring XML方式

Quartz丨整合Spring XML方式

Code

  • 座標
<dependencies>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context-support</artifactId>
		<version>5.0.2.RELEASE</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-tx</artifactId>
		<version>5.0.2.RELEASE</version>
	</dependency>
	<dependency>
		<groupId>org.quartz-scheduler</groupId>
		<artifactId>quartz</artifactId>
		<version>2.2.1</version>
	</dependency>
	<dependency>
		<groupId>org.quartz-scheduler</groupId>
		<artifactId>quartz-jobs</artifactId>
		<version>2.2.1</version>
	</dependency>
</dependencies>
  • Application.java
public static void main(String[] args) {
	new ClassPathXmlApplicationContext("spring-jobs.xml");
}
  • spring-jobs.xml
<?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:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
						http://www.springframework.org/schema/beans/spring-beans.xsd
						http://www.springframework.org/schema/mvc
						http://www.springframework.org/schema/mvc/spring-mvc.xsd
						http://code.alibabatech.com/schema/dubbo
						http://code.alibabatech.com/schema/dubbo/dubbo.xsd
						http://www.springframework.org/schema/context
						http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 註冊自定義Job -->
    <bean id="ClearImageJob" class="com.aivsok.jobs.ClearImageJob"></bean>

    <!-- 註冊JobDetail,作用是負責通過反射呼叫指定的Job -->
    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!-- 注入目標物件 -->
        <property name="targetObject" ref="ClearImageJob"/>
        <!-- 注入目標方法 -->
        <property name="targetMethod" value="run"/>
    </bean>

    <!-- 註冊一個觸發器,指定任務觸發的時間 -->
    <bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <!-- 注入JobDetail -->
        <property name="jobDetail" ref="jobDetail"/>
        <!-- 指定觸發的時間,基於Cron表示式  10秒一次 -->
        <property name="cronExpression">
            <value>0/10 * * * * ?</value>
        </property>
    </bean>

    <!-- 註冊一個統一的排程工廠,通過這個排程工廠排程任務 -->
    <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <!-- 注入多個觸發器 -->
        <property name="triggers">
            <list>
                <ref bean="myTrigger"/>
                <!--<ref bean="1"/>-->
                <!--<ref bean="2"/>-->
            </list>
        </property>
    </bean>
</beans>
  • ClearImageJob.java
public class ClearImageJob {
    public void run() {
        System.out.println("定時任務,走起~~~!" + new Date());
    }
}

參考

https://gitee.com/aivsok/aivsok-quartz-dev/tree/master