1、首先需要在spring的配置文件spring-mvc.xml的头部beans中添加如下代码:
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"
2、配置定时任务扫描注解:
<task:annotation-driven/>或者这样写
<!--开启这个配置,spring才能识别@Scheduled注解--> <task:annotation-driven scheduler="xxxScheduler"/> <task:scheduler id="xxxScheduler" pool-size="10"/>
3、配置扫描任务的地址:(方式一,直接启动项目就开启定时任务去执行)
<context:component-scan base-package="com.xxx.xxxx.task" />
接下来写定时任务需要执行的class:
@Component public class Task { /** * 每5分钟执行一次 * */ @Scheduled(cron = "0 0/5 * * * ?") public void task() { //方式二:手动设置是否需要开启定时任务,使用全局配置文件设置定时任务是否开启,设置一个Boolean类型的值,获取到判断 if (!ConfigKit.getUseTask()) { return; } //这里是需要执行定时任务的方法体,里面可根据业务逻辑去实现自己的功能 System.out.println("执行了任务。。。。。。。"); }
//@Scheduled(cron = "0 0 1 * * ?")每天凌晨1点整
//@Scheduled(cron = "0 30 0 * * ?")每天凌晨0点30分
//@Scheduled(cron = "0 */60 * * * ?")1小时处理一次
}
4、使用需要注意以下:
①、实现类上要有组件的注解@Component
②、spring的@Scheduled注解 需要写在实现方法上
③、 定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true)
版权声明:本文为aoxiang94原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。