Spring里MethodInvokingJobDetailFactoryBean定时任务的小示例

时间:2022-07-25 08:01:08
本人不才,写博客纯属为了做笔记,言语不恰当地方还望包涵。嘿嘿。
MethodInvokingJobDetailFactoryBean大概的意思就是根据方法名称去执行任务的一个工厂bean。

以下是代码:
springQuartz.xml

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!-- 定义目标bean和bean中的方法 -->
    <bean id="SpringQtzJob_SendMailJob" class="cn.hr.esbjob.SendMailJob" />
    <bean id="SpringQtzJobMethod_SendMailJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="concurrent"> <!--定时任务不会并行执行,默认是true-->
            <value>false</value>
        </property>
        <property name="targetObject"><!--要执行的对象-->
            <ref bean="SpringQtzJob_SendMailJob" />
        </property>
        <property name="targetMethod">  <!-- 要执行的方法名称 -->
            <value>doJob</value>
        </property>
    </bean>
    <!-- ================= 调度触发器 ======================== -->
    <bean id="CronTriggerBean_SendMailJob" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="SpringQtzJobMethod_SendMailJob"></property>
        <property name="cronExpression" value="0 0/1 * * * ?"></property><!--1分钟触发一次-->
    </bean>
    <!-- ======================== 调度工厂 ======================== -->
    <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="CronTriggerBean_SendMailJob" />
            </list>
        </property>
    </bean>
</beans>

SendMailJob.java

public void doJob(){
        // 业务处理逻辑
        System.out.println("======定时任务=======");
}

然后将springQuartz.xml在spring主配置中引入即可。
效果图:
Spring里MethodInvokingJobDetailFactoryBean定时任务的小示例
如有问题,请留言!