spring配置文件
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-4.2.xsd">
其他配置
<context:component-scan base-package="com.baofoo.cutpayment" /><!--包扫描-->
<task:annotation-driven /><!-- 任务扫描注解-->
实现类MyTaskServiceImpl
@Service
@Slf4j
public class MyTaskServiceImpl implements MyTaskService {
@Scheduled(cron="0/5 * * * * ? ") //每5秒执行一次
public void myTest(){
System.out.println("...spring容器不关闭,这样子就可以看定时任务效果...");
}
}
需要注意的几点:
1、spring的@Scheduled注解 需要写在实现上、
2、定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true、具体就去百度google吧)
3、实现类上要有@Component @Service 等spring bean注解。交由spring容器管理bean。
参考文章:http://blog.youkuaiyun.com/sd4000784/article/details/7745947