3) 写类
package example;
import mail.*;
public class ExampleBusinessObject {
// properties and collaborators
IOrderManager ordermanager;
ISenderMail simplesender;
public void doIt() {
try {
//简单的邮件发信
//simplesender.sendMail();
//使用回调函数发信
ordermanager.placeOrder(new Customer("XXX@XXX.com",
"姓", "名", "邮件中的内容"));
System.out.println("O,发送Email成功了....");
} catch (Exception e) {
System.out.println(e.getMessage());
// TODO: handle exception
}
}
public ISenderMail getSimplesender() {
return simplesender;
}
public void setSimplesender(ISenderMail simplesender) {
this.simplesender = simplesender;
}
public IOrderManager getOrdermanager() {
return ordermanager;
}
public void setOrdermanager(IOrderManager ordermanager) {
this.ordermanager = ordermanager;
}
}
package example;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class ExampleJob extends QuartzJobBean {
private int timeout;
/**
* Setter called after the ExampleJob is instantiated
* with the value from the JobDetailBean (5)
*/
public void setTimeout(int timeout) {
this.timeout = timeout;
}
protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException {
System.out.println("FOR TEST!!!");
// do the actual work
}
}
2. 使用JDK Timer支持类
1).配置JDKTimer.xml
位置:WEB-INF/conf/JDKTimer.xml
例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="checkEmail" class="example.CheckEmailAddresses">
<property name="emailAddresses">
<list>
<value>test@springframework.org</value>
<value>foo@bar.com</value>
<value>john@doe.net</value>
</list>
</property>
</bean>
<bean id="scheduledTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<!-- wait 10 seconds before starting repeated execution -->
<property name="delay" value="10000" />
<!-- run every 50 seconds -->
<property name="period" value="10000" />
<property name="timerTask" ref="checkEmail" />
</bean>
<bean id="timerFactory" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<!-- see the example above -->
<ref bean="scheduledTask" />
</list>
</property>
</bean>
</beans>
2). 配置web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
<!--WEB-INF/dataAccessContext.xml,-->
WEB-INF/conf/applicationContext.xml,
WEB-INF/conf/MailSender.xml,
WEB-INF/conf/JDKTimer.xml,
WEB-INF/conf/QuartzTimer.xml
</param-value>
</context-param>
3).书写类 CheckEmailAddresses.java
package example;
import java.util.List;
import java.util.TimerTask;
public class CheckEmailAddresses extends TimerTask {
private List emailAddresses;
public void setEmailAddresses(List emailAddresses) {
this.emailAddresses = emailAddresses;
}
public void run() {
System.out.println("FOR TEST JDKTIMER");
}
}
OK,所有的工作就做完了,配置了多种邮件抽象和定时调度,可以帮助理解其中几种配置在项目中的需求。
按上述配置好后,就可以运行TOMCAT了,不过请注意:
在配置项目的时候要在CLASSPATH中加载额外的几个JAR包,这是类文件和配置文件所必须用到的:
Activation.jar
Javamail.jar
Quart.jar
Commons-collection-3.2.jar
分享到:
相关推荐
在这个项目中,结合Quartz和Spring Batch,开发者可能已经创建了一个系统,可以在集群环境中自动调度和执行Spring Batch作业。MySQL被用作Quartz的JobStore和Spring Batch的持久化存储,存储作业状态、调度信息以及...
本文将深入探讨Spring中的定时任务,并结合Eclipse和Maven项目环境进行讲解。 首先,Spring提供了两种主要的定时任务实现:`Spring Task`(也称为Spring自己的任务调度器)和`Quartz Scheduler`。`Spring Task`相对...
Spring 整合 Quartz 定时发送邮件是一种常见的任务调度场景,用于定期执行如发送通知、报告等操作。Quartz 是一个开源的作业调度框架,它允许开发者创建、调度和管理任务。而Spring作为一个强大的企业级应用开发框架...
Spring的任务调度模块使得开发者能够在应用中轻松地定义和执行定时任务,极大地提高了代码的可维护性和灵活性。 标题"Spring 任务调度"涵盖了Spring框架中的两个主要组件:Spring Task和Quartz Scheduler。Spring ...
Quartz和SpringBatch是两种在Java开发中广泛使用的框架,Quartz用于任务调度,而SpringBatch则用于批量处理。在大型分布式系统中,结合这两者可以实现强大的定时任务集群功能,尤其是在需要对大量数据进行定时处理的...
在IT行业中,定时任务是常见的一种需求,它允许程序在特定时间或按照一定周期自动执行某些操作,比如发送邮件、进行数据统计、更新系统状态、推送消息、开启活动或创建增量索引等。目前,主要有两种方式可以实现定时...
`spring-context-support.jar`是Spring框架对Quartz和Commons JCR等第三方调度库的支持,同时也包含Spring自己的`TaskExecutor`和`TaskScheduler`接口,用于实现异步任务和定时任务。 1. **Spring TaskExecutor**: ...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...
在Java中,有多种实现定时任务调度的方式,包括但不限于Java内置的`java.util.Timer`类、Spring框架的`@Scheduled`注解以及Quartz库。 1. **Java内置的`java.util.Timer`和`TimerTask`**: - `Timer`类用于创建一...
ss-deamonSpring和qz定时调度任务的整合系统有很多个mysql和mongo库,用户中心,订单中心,库存中心。因为没有统一的抽象业务层,所以定时任务需要直接连接这些不同的数据库。同时考虑到后期会有很多不同的定时任务...
在Java开发中,Spring框架和Quartz库的整合是实现定时任务的一种常见方式。Spring提供了灵活的定时任务支持,而Quartz则是一个强大的作业调度框架,可以用来安排复杂的任务执行计划。下面我们将深入探讨如何在Spring...
Spring通过提供一个抽象层,简化了Quartz的配置和使用,使得任务调度变得更加简单和灵活。 1. **Spring集成Quartz**:Spring为Quartz提供了声明式配置,可以在Spring的XML配置文件中定义Job(任务)和Trigger...
整合Spring和Struts是Web开发中常见的需求,这两者都是Java Web开发的重要框架。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,以及对其他框架的良好集成,而Struts则是一个专注于MVC模式的轻量级框架...
在Ibatis Spring Struts整合中,Spring通常作为核心框架,管理其他组件的生命周期,包括Struts的Action和Ibatis的SqlSession。开发者可以利用Spring的AOP功能来管理事务,确保在多条数据库操作之间保持一致性。...
Spring 通过提供一系列的抽象层来简化 Quartz 的使用。 #### 二、Spring 普通定时任务 ##### 2.1 基本概念 Spring 定时任务主要依赖于 Quartz 的 Job 和 Trigger 两个核心组件。其中,Job 代表了需要执行的任务,...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
在Spring 2.x版本中,Spring已经提供了对`Timer`和Quartz的集成支持,通过`FactoryBean`进行配置,还包含线程池调度的抽象类,隐藏了底层实现细节。然而,Spring 3.0引入了新的【新特性】,包括声明式模型验证、全面...
1. **邮件服务**:Spring提供了一种抽象层来处理邮件发送,允许开发者配置SMTP服务器并轻松地发送邮件。 2. **定时任务**:通过`org.springframework.scheduling`包,Spring支持基于 cron 表达式的任务调度,可以...
Spring Boot提供了Spring Scheduler抽象来实现这样的需求,使得开发者能够方便地管理和控制定时任务。本篇文章将深入探讨如何在Spring Boot中实现定时任务的动态开启和关闭。 首先,我们需要引入Spring Boot的`...