大部分项目都会需要定时执行摸个任务,有的可以在数据库中执行,有的只能在程序中执行。
两种集成的方式
一、注解使用Quartz
a.引入jar包,注意和spring 的兼容版本 此处spring的版本是4.0.2.RELEASE( 应该只要是4.x的都支持)
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
b.添加spring配置
spring task命名空间配置
xmlns:task="http://www.springframework.org/schema/task"
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
<!-- 开启注解驱动特性 -->
<task:annotation-driven/>
<context:component-scan base-package="com.ucic.task"/>
c.编写任务实现类
@Component
public class QueryBoxunDataTask {
/**
* 定时执行任务
*/
@Scheduled(cron="0 0/1 * * * ?") //每分钟执行
public void doJob(){
System.out.println("-------------------"+new Date().toLocaleString());
}
}
d.效果
二,注解使用spring-task
奇怪 为什么 去掉quartz依赖也照样运行,所以写到这里的时候 我才发现两个的配置居然一样 难道如果有quartz就调用quartz?没有的话就使用默认的spring-task?