当你新建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+quartz搭建的环境来管理任务调度的基本配置
Quartz + spring简单配置多个任务调度 spring配置文件 简单配置
spring中的任务调度器配置方法 spring中的任务调度器配置方法 spring中的任务调度器配置方法
一个简单的调度器案例,和一些官方源码,quartz入门
7、自定义任务参数:支持在线配置调度任务入参,即时生效; 8、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞; 9、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配...
Spring 定时器 任务调度 怎么在项目中写定时任务 怎么配置一些环境
技术:spring 功能:在java后台每隔一段时间执行一次自己想要的代码,定时器会随web启动而启动. 这是一个web工程、把工程解压后放到eclipse或myeclipse里运行就可以了、在控制台会每隔5秒输出一句话、时间是可以设置...
Spring中Quartz任务调度器cronexpression配置说明
包含了spring的ioc,aop,任务调度,cxf、jws示例以及邮件发送跟任务调度。里面包含了需要用到的jar包以及xml配置文件。还有示例代码。很方便学习
虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问...
2.目前新的项目基本都是spring boot,如何通过约束、配置方式快速构建elastic job是一个必 要解决问题 ;所以博主自己开发了一个elastic job 的spring boot starter自动装载模块;目前 该starter已经在公司多个...
Spring3.0作业调度Spring3.0内置的定时调度的功能可以通过注解及XML配置来实现。Sping3Demo项目的com.chinadim.demo.spring.schedule包路径下的两个示例程序尽可能简洁地演示了怎样使用这两种方式。 接下来,我们来...
spring动态调度任务,根据用户选择时间进行定时执行任务相关文档配置
TimeTask 与quartz简单用法 Spring中任务调度cronExpression配置说明
spring boot @scheduled注解 cron 表达式实现计划任务调度。
因为上传大小的限制,分为两部分上传,这是第二部分,第一部分会在评论中给出链接 绝对是spring攻略中文版第二版 ... 第18章 Spring对JMX、电子邮件和调度的支持 第19章 Spring中的脚本编程
向Spring 框架提供上下文信息,包括企业服务,如 JNDI、EJB、电子邮件、国际化、校验和调度等。 Spring AOP。通过配置管理特性,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块直接将面向方面...
实现了spring配置比较流行的任务调度操作,java timer 和 quartz俩种方式 并且有注释描述。
因为上传大小的限制,分为两部分上传,这是第一部分,第二部分会在评论中给出链接 绝对是spring攻略中文版第二版 ... 第18章 Spring对JMX、电子邮件和调度的支持 第19章 Spring中的脚本编程