springMVC配置定时任务,并调用service

来源:互联网 发布:linux tail f n 100 编辑:程序博客网 时间:2024/06/17 07:18

环境说明:使用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,到此位置。已完成配置。

原创粉丝点击