环境说明:使用spring4.0版本
1、定时任务配置
1.1 spring配置文件配置
增加:
xmlns:task="http://www.springframework.org/schema/task
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd
<!-- 定时任务配置 start -->
<task:annotation-driven />
<bean id="mytask" class="com.spring.task.MyTask"></bean>
<task:scheduled-tasks>
<!-- 这里表示的是每隔五秒执行一次 -->
<task:scheduled ref="mytask" method="taskCycle" cron=" 0/5 * * * * ?" />
</task:scheduled-tasks>
<!-- 定时任务配置 end -->
备注:
method="taskCycle" //指定需要定时执行的方法
cron=" 0/5 * * * * ?" // 设置定时执行任务时间间隔.参考:http://www.cnblogs.com/leeyes999/p/5742287.html
MyTask代码参考:
public class MyTask{
public static void taskCycle(){
// TODO 我的业务逻辑
}
}
2、调用service
2.1 增加SpringContextUtil.java
代码:
/**
*
* 获取spring容器,以访问容器中定义的其他bean
*/
public class SpringContextUtil implements ApplicationContextAware {
// Spring应用上下文环境
private static ApplicationContext applicationContext;
/**
* 实现ApplicationContextAware接口的回调方法,设置上下文环境
*
* @param applicationContext
*/
public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
/**
* @return ApplicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 获取对象 这里重写了bean方法,起主要作用
*
* @param name
* @return Object 一个以所给名字注册的bean的实例
* @throws BeansException
*/
public static Object getBean(String name) throws BeansException {
return applicationContext.getBean(name);
}
}
2.2 spring配置文件增加:
<bean id="springContextUtil" class="com.spring.task.SpringContextUtil" lazy-init="false" />
2.3 定时任务中调用service
UserService userService = (UserService) SpringContextUtil.getBean("userService");
ok,到此位置。已完成配置。