spring整合quartz任务调度(注解式)
maven依赖
<!-- Quartz Core -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.6</version>
</dependency>
<!-- Quartz uses SLF4J, so we need an actual logger -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
配置springmvc.xml
xmlns 多加下面的内容
xmlns:task="http://www.springframework.org/schema/task"
然后xsi:schemaLocation多加下面的内容
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd
最后是我们的task任务扫描注解
<task:annotation-driven/>
<!-- 自动扫描注解的bean -->
<context:component-scan base-package="com"/>
之前我们都是通过基于XML的方式实现Spring Quartz 虽然配置起来特别的方便,但是Spring还支持基本注解的方式来配置,这样做不仅更加简单,而且代码量也更加少了很多。
配置需要调度的类,并添加注解
/**
* 系统中的定时任务
*/
@Component //让Spring可以扫描到并初始化
public class NsfwAction extends ActionSupport
/**
* 每隔10秒查询一次是否有消息
*/
@Scheduled(cron = "0/10 * * * * ?") //配置定时任务的执行时间
public void queryInfo() {
System.out.println("查询新消息 " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ").format(new Date()));
}
//工作日的周一到周五晚上八点45导出文件
@Scheduled(cron = "0 45 20 ? * MON-FRI")
public String user_exportExcel() throws IOException {
//查所有用户信息
List<User> list = userService.findAll();
//导出数据
PoiUtil poiUtil = new PoiUtil();
poiUtil.outPut(list);
return "success3";
}