`
ll_feng
  • 浏览: 387279 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring任务调度器的学习笔记

阅读更多
一、基本框架
任务调度器是很多应用系统的幕后功臣,spring的任务调度器是基于对著名的quartz的封装。其基本框架是:


二、加入支持
主要是quartz-xxx.jar包,及相关的包

三、编写第一个程序
需要特别这此编写的代码并不多,只需要写工作(job)类,trigger和scheduler都由spring封装,配置一下即可。
举一个job类的例
package org.examples.mini.task;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class MyJob extends QuartzJobBean {

	private MyService service;
	
	public void setService(MyService service) {
		this.service = service;
	}
	

	public MyService getService() {
		return service;
	}


	@Override
	protected void executeInternal(JobExecutionContext context)	throws JobExecutionException {
		service.doSomthing("做点什么事……");
	}

}


四、配置,
applicationContext-scheduler.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
	default-lazy-init="true">

	<description>Spring任务调度器 </description>
	
	<bean id="myJob" class="org.springframework.scheduling.quartz.JobDetailBean">
	    <property name="jobClass">
	      <value>org.examples.mini.task.MyJob</value>
	    </property>
	    <property name="jobDataAsMap">
	      <map>
	        <entry key="service">
	          <ref bean="service"/>
	        </entry>
	      </map>
	    </property>
	</bean>
  
	<bean id="service" class="org.examples.mini.task.MyServiceImpl"></bean>

	<!-- 简单任务触发器 -->
	<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
		<property name="jobDetail">
			<ref bean="myJob" />
		</property>
		<property name="startDelay">
			<value>50000</value>
		</property>
		<property name="repeatInterval">
			<value>10000</value>
		</property>
	</bean>

	<bean id="cronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="myJob" />
		</property>
		<property name="cronExpression">
			<value>1 * * * * ? 2010</value><!-- 0 3 17 * * ? 2010 -->
		</property>
	</bean>
	
	<bean id="cronTrigger2" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="myJob" />
		</property>
		<property name="cronExpression">
			<value>2 * * * * ? 2010</value>
		</property>
	</bean>
	
	<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<!-- <ref bean="simpleTrigger" /> 
				<ref bean="cronTrigger1" />-->
				<ref bean="cronTrigger2" />
			</list>
		</property>
	</bean>
</beans>


五、启动web应用,即可实现真实的任务调度

六、表示式
CronException完整配置格式为: [秒] [分] [小时] [日] [月] [周] [年]
可参考网络资源:http://blog.csdn.net/feiyun72/article/details/6921366
  • 大小: 11 KB
分享到:
评论

相关推荐

    spring2.0学习笔记+spring定时任务

    标题 "spring2.0学习笔记+spring定时任务" 暗示了我们即将探讨的是关于Spring框架2.0版本的学习心得以及如何在Spring中配置和使用定时任务。在这个主题下,我们将深入理解Spring的核心概念,特别是它在企业级Java...

    Spring Boot 学习笔记完整教程.pdf

    9. Spring Boot任务调度:了解如何在Spring Boot中实现定时任务和异步任务。 10. Spring Boot集成测试:学习如何进行集成测试,包括使用JUnit和Mockito等工具。 11. Spring Boot热部署:了解热部署的原理,以及...

    Spring+SpringMVC基础学习笔记(b站课程学习笔记)

    SpringMVC的学习则需要掌握请求处理流程,包括DispatcherServlet的调度机制,以及如何通过注解和配置文件定义控制器、模型属性和视图解析。同时,理解ModelAndView类的作用,以及如何进行模型数据的传递和视图的跳转...

    spring学习笔记,包括源码学习

    这个"spring学习笔记,包括源码学习"的资料很可能包含了一系列关于Spring框架的核心概念、配置、使用方法以及深入源码的解析。 首先,让我们来了解一下Spring框架的基础知识。Spring的核心特性是依赖注入,它允许...

    spring+hibernate学习笔记和项目源代码

    本资源包“spring+hibernate学习笔记和项目源代码”提供了深入理解和实践这两个框架的机会,同时也包含了Struts的集成,形成经典的SSH(Spring、Struts、Hibernate)架构。以下是关于这些主题的详细知识解析: 1. *...

    Spring MVC 学习笔记 一 创建项目

    更多关于Spring MVC的高级特性,如拦截器、AOP、MVC注解、数据绑定等,将在后续的学习笔记中逐步展开。参考提供的博文链接(https://starscream.iteye.com/blog/1057305)可以获取更多详细信息和实战案例。

    (经典)Spring.NET学习笔记

    7. **企业服务支持**:Spring.NET还支持各种企业级服务,如邮件服务、任务调度、缓存管理等,帮助开发者快速构建企业级应用。 8. **测试支持**:Spring.NET提供了单元测试和集成测试的支持,帮助开发者编写可测试的...

    Struts、Spring、Hibernate&Ajax;学习笔记总结

    ### Struts、Spring、Hibernate&Ajax 学习笔记总结 #### Struts 部分 **Struts** 是 Java 开源框架中最早出现且最具影响力的框架之一,它出自 Apache 组织,是 Java Web 应用开发的标准之一。Struts 以 MVC(Model...

    Spring 学习笔记二

    在本篇"Spring 学习笔记二"中,我们将深入探讨Spring框架的核心概念和技术细节,以便更好地理解和使用这个广泛应用于企业级Java开发的框架。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-...

    Spring MVC 学习笔记

    以下是对Spring MVC学习笔记的详细解释: 1. **创建项目**: 创建Spring MVC项目通常从构建一个Maven工程开始。在命令行中使用Maven的`archetype:generate`命令创建一个JEE5的Web工程。在提供的例子中,使用了特定...

    Spring MVC学习笔记MD.7z

    这个压缩包“Spring MVC学习笔记MD.7z”包含了作者在学习Spring MVC过程中的笔记、源代码以及相关文档,非常适合初学者或希望深入理解Spring MVC的开发者。 首先,`SpringMVC-Study.7z` 可能是作者整理的Spring MVC...

    spring框架学习笔记

    以上内容仅是Spring框架的冰山一角,实际上Spring有着广泛的功能,包括事务管理、缓存、消息传递、任务调度等,是现代Java开发不可或缺的重要工具。深入学习Spring,不仅可以提升个人技能,还能为解决实际开发问题...

    Spring学习笔记之一“why spring”

    这篇"Spring学习笔记之一“why spring”"可能探讨了为何选择Spring作为开发工具的原因,以及Spring框架的基本理念和优势。 首先,Spring是轻量级的。在Java世界中,轻量级意味着它对应用程序的侵入性较小,不会强制...

    Spring Boot 学习笔记完整教程new

    这个学习笔记的完整教程涵盖了从基础到进阶的多个主题,旨在帮助初学者快速上手并深入理解Spring Boot的核心特性。 1. **Spring Boot HelloWorld**:这是每个教程的起点,通常包括创建一个新的Spring Boot项目,...

    Spring Boot 学习笔记完整教程.docx

    这个学习笔记的完整教程将涵盖多个关键领域,帮助开发者深入理解和使用 Spring Boot。 1. **Spring Boot 教程** - **基础入门**:了解 Spring Boot 的核心理念,包括自动配置、起步依赖和独立运行的特性。 - **...

    传智博客Spring框架2016版笔记资料(四天)

    第四天的笔记通常会涉及Spring与其他技术的集成,例如Spring MVC,它是Spring框架用于构建Web应用的部分,讲解控制器、模型、视图和调度器的概念。此外,SSM(Spring、Spring MVC、MyBatis)集成也会被提及,这是...

    最新版Spring Cloud 学习笔记

    本学习笔记主要探讨微服务架构及其在Spring Cloud中的实现。 首先,我们从系统架构的演变开始,了解从单体应用到微服务架构的转变。单体应用架构是早期常见的设计,所有功能代码部署在一起,适合小型项目,但随着...

Global site tag (gtag.js) - Google Analytics