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
分享到:
相关推荐
ss-deamonSpring和qz定时调度任务的整合系统有很多个mysql和mongo库,用户中心,订单中心,库存中心。因为没有统一的抽象业务层,所以定时任务需要直接连接这些不同的数据库。同时考虑到后期会有很多不同的定时任务...
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来...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...
Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring ...
13.6.4 Web应用程序中调度器的启动和关闭问题 13.7 小结 第14章 使用OXM进行对象XML映射 14.1 认识XML解析技术 14.1.1 什么是XML 14.1.2 XML的处理技术 14.2 XML处理利器:XStream 14.2.1 XStream概述 14.2.2 快速...
线程池和任务调度集成。Java消息服务集成,Java Mail集成,远程服务集成。Java管理扩展集成,Java EE连接器架构集成 专注于Spring2.5高级特性的研究。包括忘却的Spring高级话题,Spring最佳实践 对Spring2.5内置...
Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...
线程池和任务调度集成。Java消息服务集成,Java Mail集成,远程服务集成。Java管理扩展集成,Java EE连接器架构集成 专注于Spring2.5高级特性的研究。包括忘却的Spring高级话题,Spring最佳实践 对Spring2.5内置...
2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在classpath中自动搜索组件...
第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP...
第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP...
13.6.4 Web应用程序中调度器的启动和关闭问题 13.7 小结 第14章 使用OXM进行对象XML映射 14.1 认识XML解析技术 14.1.1 什么是XML 14.1.2 XML的处理技术 14.2 XML处理利器:XStream 14.2.1 XStream概述 14.2.2 快速...
Spring框架分别使用TaskExecutor和TaskScheduler接口提供异步执行和任务调度的抽象。Spring还提供了这些接口的实现,这些接口支持线程池或将其委托给应用服务器环境中的CommonJ。 Spring2.0开始引入的新的抽像。...
16.5spring中带有dwr的支持ajax的应用程序 16.5.1直接web远程控制 16.5.2访问spring管理的beandwr 16.6小结 附录a装配spring a.1下载spring a.1.1研究spring发布 a.1.2构建自己的类路径 a.2把spring添加为一...
线程池和任务调度集成。Java消息服务集成,Java Mail集成,远程服务集成。Java管理扩展集成,Java EE连接器架构集成 专注于Spring2.5高级特性的研究。包括忘却的Spring高级话题,Spring最佳实践 对Spring2.5内置...
线程池和任务调度集成。Java消息服务集成,Java Mail集成,远程服务集成。Java管理扩展集成,Java EE连接器架构集成 专注于Spring2.5高级特性的研究。包括忘却的Spring高级话题,Spring最佳实践 对Spring2.5内置...
Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 ☆ Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 ...
这些适配器提供了比 Spring 对远程处理、消息传递和调度的支持更高级别的抽象。这个jar包将这一概念更进一步,其中 POJO 使用消息传递范例连接在一起,并且各个组件可能不知道应用程序中的其他组件。这样的应用程序...
该案例采用目前最流行、最规范的java ee架构,整个应用分为jpa实体层、eao层、业务逻辑层、mvc层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了ide无关的、基于ant管理的项目源码...