`
as11051105
  • 浏览: 59389 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

Spring调度配置

阅读更多
当你新建web项目,配置好SSH环境后如要使用调度,先需要导入quartz-all-1.6.1.jar.这里的Demo是发短信:
首先,配置好applicationContext.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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
			http://www.springframework.org/schema/aop 
			http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
			http://www.springframework.org/schema/beans 
			http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
			http://www.springframework.org/schema/tx 
			http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
	
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
			<property name="url" value="jdbc:oracle:thin:@***.***.***.***:**" />
			<property name="username" value="***" />
			<property name="password" value="***" />
		</bean>

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>
			</props>
		</property>
		<property name="mappingDirectoryLocations">
			<list>
				<value>classpath*:/com/*/model</value>
			</list>
		</property>
	</bean>
	<!-- 配置事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>

	<!-- 配置事务传播特性 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="save*" propagation="REQUIRED" />
			<tx:method name="delete*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="do*" propagation="REQUIRED" />
			<tx:method name="*" read-only="true" />
		</tx:attributes>
	</tx:advice>

	<!-- 哪些类的哪些方法参与事务 -->
	<aop:config>
		<aop:pointcut id="allManagerMethod"
			expression="execution(* com.*.service.*.*(..))" />
		<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" />
	</aop:config>

	<!-- dao模板(所有dao都将使用此模板) -->
	<bean id="daoTemplate" abstract="true">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>

	<import resource="applicationContext-dao.xml" />
	<import resource="applicationContext-service.xml" />
	<import resource="applicationContext-action.xml" />
	<import resource="applicationContext-quartz.xml" />
	<import resource="applicationContext-webservice.xml" />
</beans>

其次,接下来就是applicationContext-quartz.xml,调度配置文件:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<!-- 配置需要定时执行的Spring bean -->
	<bean id="sendMMSScheduler" class="com.lx100ERP.schedule.SendMMSScheduler">
		<property name="purOrderService" ref="purOrderService"></property>
	</bean>
	<!-- 配置quartz的任务,指定该任务执行哪一个bean的哪一个方法 -->
	<bean id="sendMMSByDayFactory"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 要调用的类 -->
		<property name="targetObject" ref="sendMMSScheduler" />
		<!-- 要调用的方法 -->
		<property name="targetMethod" value="sendMMS" />
	</bean>

	<!-- 配置quartz的触发器,指定该触发器触发的条件,以及该触发器加载哪些job -->
	<bean id="sendMMSByDayCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="sendMMSByDayFactory" />
		</property>
		<!-- cron 表达式(秒,分,时,日,月,周):每隔10分钟执行一次 -->
		<property name="cronExpression" value="0 */1 0-23 * * ?" />

	</bean>
	<!-- 配置quartz调度,指定加载哪些触发器 -->
	<bean id="scheduler"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">

			<list>
                                <!-- 这里一定要放开,否则不会调成功-->
				<ref local="sendMMSByDayCronTrigger" /> 
			</list>
		</property>
	</bean>
</beans>


接下来,就是具体调度实现的方法了:

/**
 * 短信下发调度
 * 
 */
public class SendMMSScheduler {
	private PurchaseOrderService purOrderService;
	public void sendMMS() {
		//TODO
//具体方法
	}
	public void setPurOrderService(PurchaseOrderService purOrderService) {
		this.purOrderService = purOrderService;
	}
}

好了,一个调度这就行了,很简单的。关于cron表达式,可以看一下本人的这篇文章cron表达式,
不足之处请多多指教!
分享到:
评论

相关推荐

    spring时间调度配置

    根据提供的文件信息,我们可以深入探讨Spring框架中的时间调度配置及其应用。Spring框架为开发者提供了强大的时间任务调度功能,尤其在企业级应用中极为常见。本文将详细介绍如何利用Spring进行时间调度配置,包括...

    Spring任务调度配置及说明(spring+quartz)

    《Spring任务调度配置详解:Spring+Quartz的整合应用》 在Java开发中,任务调度是不可或缺的一部分,Spring框架提供了与Quartz集成的能力,使得我们可以方便地管理和执行定时任务。本文将详细介绍如何通过Spring和...

    使用spring调度

    本篇文章将深入探讨Spring调度的使用,包括核心概念、配置方式以及源码解析。 1. **Spring调度核心组件** Spring调度主要由两个关键组件构成:`TaskScheduler`和`ThreadPoolTaskScheduler`。`TaskScheduler`是...

    spring 任务调度

    - **Spring与Quartz集成**:Spring通过`org.springframework.scheduling.quartz`包提供了一种无缝的集成方式,可以方便地在Spring容器中配置和管理Quartz Job和Trigger。 - **Job和Trigger**:在Quartz中,Job是...

    quartz案例,包括spring配置设置调度器和入门手册

    - **配置Spring**:在Spring的配置文件中,我们需要声明一个`SchedulerFactoryBean`,它负责创建和管理Quartz的`Scheduler`实例。例如: ```xml &lt;bean id="scheduler" class="org.springframework.scheduling....

    spring 任务调度实现代码例子

    7. **调整调度配置** 你可以通过`@ConfigurationProperties`注解的`TaskProperties`类来调整任务调度的配置,例如线程池大小、任务超时等。 8. **监听任务事件** Spring提供了`TaskExecutionListener`和`...

    Quartz + spring简单配置多个任务调度

    Quartz + spring简单配置多个任务调度 spring配置文件 简单配置

    Spring实现任务调度

    要使用Spring的内置任务调度,我们需要在配置中启用`TaskExecutor`和`TaskScheduler`。在XML配置中,可以添加如下配置: ```xml &lt;bean id="taskExecutor" class="org.springframework.scheduling.concurrent....

    Spring定时调度简单实现源码

    这个"Spring定时调度简单实现源码"很显然是一个关于如何在Spring中配置和使用定时任务的示例代码包。下面我们将深入探讨Spring的定时调度机制以及其核心组件。 Spring的定时任务调度主要依赖于两个关键组件:`Task...

    spring调度器用到的jar

    二、配置Spring调度器 在Spring应用中配置调度器,你需要创建一个`TaskConfiguration`类,使用`@EnableScheduling`注解开启定时任务调度。同时,可以自定义`TaskExecutor`和`TaskScheduler`,例如使用`...

    spring中的任务调度器配置方法

    spring中的任务调度器配置方法 spring中的任务调度器配置方法 spring中的任务调度器配置方法

    Spring定时器配置详解(附demo)

    本篇将详细介绍如何在Spring中配置定时器,并通过一个实际的Demo来加深理解。 一、Spring定时任务概述 Spring提供了两种主要的定时任务实现方式:`TaskScheduler`和`TaskExecutor`,以及基于Quartz的`Spring...

    Spring实现任务调度.rar

    Spring框架提供了强大的任务调度能力,使得开发者能够轻松地集成和管理定时任务。本资料“Spring实现任务调度”将深入探讨如何在Spring中设置和管理定时任务。 首先,我们需要理解Spring中的任务调度机制。Spring...

    spring调度器

    Spring框架中的调度器,全称为Spring Task或者Spring Batch,是一个强大的任务调度和执行系统,它允许开发者在应用...通过合理配置和设计,我们可以利用Spring调度器来实现复杂的应用场景,提高系统的响应速度和效率。

    Spring MVC 配置请求的默认处理器.rar

    这个过程涉及到设置DispatcherServlet,它作为Spring MVC的核心组件,负责调度HTTP请求到相应的控制器。以下将详细阐述Spring MVC配置请求的默认处理器的相关知识点。 1. **DispatcherServlet的作用** ...

    Spring中的Quartz配置-Spring-定时器-java定时器.doc

    Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...

    spring job 的配置

    在配置类上添加`@EnableScheduling`注解启用定时任务调度: ```java @Configuration @EnableScheduling public class TaskConfig { @Bean public MyTask myTask() { return new MyTask(); } } class MyTask {...

    Spring整合任务调度框架Quartz

    Spring 整合任务调度框架 Quartz ...Spring 整合任务调度框架 Quartz,可以使用配置文件方式或 Quartz 持久化方式来实现任务调度。开发者可以根据实际情况选择合适的方式,从而提高软件系统的自动化和可靠性。

    spring任务调度(Quartz )

    3. **调度器配置**:`SchedulerFactoryBean`是Spring对Quartz调度器的包装,它管理所有的触发器和任务。在这里,我们将`cron`触发器添加到调度器中,使得任务与触发器关联起来。 接下来,我们看下服务类和服务的...

    J2EE mvc spring 配置

    Spring提供了声明式事务管理、依赖注入、数据访问抽象、Web MVC框架、任务调度等众多功能。Spring的轻量级特性体现在它不强制使用特定的应用服务器,也不强依赖于J2EE的全部功能,而是通过模块化的结构,让开发者...

Global site tag (gtag.js) - Google Analytics