写了一个spring+quartz的定时任务,但是发现tomcat正常启动后并没有马上执行。网上也没找到能解决的办法,只能自己慢慢试。此文章是自己作为笔记用的,仅供参考。本人菜鸟,文中很多用词可能不当,勿喷。
spring+quartz定时任务网上有很多资料可以参考,我这里就不多说了,直接贴上我的代码。
1.项目结构
2.pom.xml添加包
<!-- 定时任务 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
3.spring-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.xsd">
<!-- 启动触发器的配置开始 -->
<!--lazy-init="false" 表示不需要延迟加载,容器启动就会执行-->
<bean id="quartzsScheduler" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="imageTrigger" />
</list>
</property>
</bean>
<!-- 触发器 quartz的配置 -->
<bean id="imageTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="testJobDetail" />
<!-- 每天8点到22点,每半小时触发一次 -->
<property name="cronExpression" value="0 0/30 8-22 * * ?" />
</bean>
<!-- job的配置开始 -->