SpringMVC quartz 计划任务 小计

单纯的SpringMVC 不集成Spring ,想要用到定时任务,在网上查阅资料,进行配置如下:

1.导入jar包:所需jar包如下(由于没有使用maven,只能自己找jar包)

quartz-2.2.1.jar
spring-context-support-4.1.6.RELEASE.jar(开始没有加入次jar,在网上搜索只是加入quartz的jar包,但是加载项目开始报错,ClassNotFound)

在项目路径下加入quartz.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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<!-- 添加调度的任务bean 配置对应的class-->
	<bean id="myJob" class="com.test.timeTask.QuartzJob" />
    <!--配置调度具体执行的方法-->
	<bean id="myJobDetail"     
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="myJob" />
		<property name="targetMethod" value="cleanTokenMap" />
		<property name="concurrent" value="false" />
	</bean>
	<!--配置调度执行的触发的时间-->
	<bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <!-- 加入相关的执行类和方法 -->
        <property name="jobDetail" ref="myJobDetail"/>
        <!-- 设置时间规则 (为了方便测试,设置成一分钟一次。具体的规则见详情)-->
        <property name="cronExpression" value="*/5 * * * * ?"/>      
    </bean> <!--每5秒执行一次 -->
	<!-- quartz的调度工厂 调度工厂只能有一个,多个调度任务在list中添加 -->
	<bean id="jobTriggers" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="myTrigger"/>
			</list>
		</property>
	</bean>
 
</beans> 

 web.xml 文件中加入quartz.mxl配置

<servlet>
	<servlet-name>springMVC</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/config/springMVC-servlet.xml,/WEB-INF/config/quartz.xml</param-value>
		</init-param>
		<load-on-startup>2</load-on-startup>
</servlet>
	
<servlet-mapping>
	<servlet-name>springMVC</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping> 

编写测试类:

public class QuartzJob {
	
	public void cleanTokenMap(){
		System.out.println("我执行了一次哈!" + new Date().toString());
	}
}

好了,开测,但是就是一次都不执行,后来查看日志,发现

Caused by: java.lang.ClassNotFoundException: org.springframework.transaction.interceptor.TransactionInterceptor 

百度一下,是因为缺少jar包,导入spring-tx jar包,重启项目,计划任务顺利执行!

 

记录一下,以便不时之需。 

 

          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值