Struts 1 + Spring 2.5.6 + Quartz 1.6调度程序示例

在本教程中,您将把Struts + Spring + Quartz框架集成在一起以执行调度程序任务。 Spring附带了现成的解决方案,可轻松集成Struts和Quartz。 关系如下:

Struts <--(Plug-In)--> Spring <--(Spring-Helper)--> Quartz <---> Scheduler task

使用的工具 :

  1. Struts1.3.10
  2. Spring2.5.6
  3. 石英1.6.3

1.计划任务

创建一个调度程序任务,并且printMessage()是您要调度的方法。

文件:SchedulerTask.java

package com.mkyong.common.quartz;
 
public class SchedulerTask 
{
   public void printMessage() {
	System.out.println("Struts + Spring + Quartz integration example ~");
   }
}

2.计划工作

要将Spring与Quartz集成,请创建一个SchedulerJob,它扩展了Spring的QuartzJobBean ,而不是Quartz Job类。

文件:SchedulerJob.java

package com.mkyong.common.quartz;
 
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
 
public class SchedulerJob extends QuartzJobBean
{
	private SchedulerTask schedulerTask;
 
	public void setSchedulerTask(SchedulerTask schedulerTask) {
		this.schedulerTask = schedulerTask;
	}
	
	protected void executeInternal(JobExecutionContext context)
	throws JobExecutionException {
 
		schedulerTask.printMessage();
 
	}
}

3.春天的石英助手

Spring附带了许多Quartz帮助器类,以简化整个Quartz调度程序过程-Scheduler,Trigget,Job和JobDetails。

档案:spring-scheduler.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 
  <!-- Scheduler task -->
  <bean name="schedulerTask" class="com.mkyong.common.quartz.SchedulerTask" />
 	
   <!-- Scheduler job -->
   <bean name="schedulerJob" 
     class="org.springframework.scheduling.quartz.JobDetailBean">
 
     <property name="jobClass" 
           value="com.mkyong.common.quartz.SchedulerJob" />
	 
     <property name="jobDataAsMap">
	<map>
	   <entry key="schedulerTask" value-ref="schedulerTask" />
	 </map>
      </property>
 
   </bean>

   <!-- Cron Trigger -->
   <bean id="cronTrigger"
	class="org.springframework.scheduling.quartz.CronTriggerBean">
 
	<property name="jobDetail" ref="schedulerJob" />
	<property name="cronExpression" value="0/5 * * * * ?" />
 
   </bean>
	
   <!-- Scheduler -->
   <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	<property name="jobDetails">
	   <list>
	      <ref bean="schedulerJob" />
	   </list>
	</property>
	 
	<property name="triggers">
	    <list>
		<ref bean="cronTrigger" />
	    </list>
	</property>
   </bean>
 
</beans>

4.Struts

要将Spring与Struts集成,您需要将Spring的ContextLoaderPlugIn包含在Struts配置文件中。

文件:struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
 
<struts-config>
	
   <action-mappings>

    <action
	path="/Welcome"
	type="org.apache.struts.actions.ForwardAction"
	parameter="/pages/quartz_started.jsp"/>

   </action-mappings>
 
   <!-- Spring Struts plugin -->
   <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
	<set-property property="contextConfigLocation"
	value="/WEB-INF/spring-scheduler.xml" />
    </plug-in>

</struts-config>

5.工作原理

在Struts初始化期间,它将通过Spring的ContextLoaderPlugIn Struts插件启动Spring Ioc容器。 在Spring初始化时,它将自动启动Quartz计划作业。

在此示例中,将每5秒执行一次printMessage()方法。

下载源代码

下载它– Struts-Spring-Quartz-Example.zip

参考文献

有关更多详细说明,您可以参考以下教程

  1. Struts + Spring集成示例
  2. Spring + Quartz Scheduler集成示例

翻译自: https://mkyong.com/struts/struts-spring-quartz-scheduler-integration-example/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值