系统中的邮件子模块-设计

最近在做新系统,又遇到了发送邮件的问题,我们这个系统有一定的特殊性,可能需要发送邮件的地方比较多。于是想着怎么做的灵活一点,更能响应以后的需求变化,于是有了现在的这个实现。

 

总的来说,使用了spring的aop的触发机制,在不同的点来触发发送邮件这个业务,并根据这个点发送相应的邮件。而发送邮件这个模块也使用了spring包装过的javamail,不同的邮件则使用了velocity模板。呵呵,也算是现时比较流行的一个实现了!

 

 

下面是邮件子系统的简单结构图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Email: 是一个邮件对象,就像我们平常看到的邮件一样,它包含了要发送的内容和一些属性,如:发送地址,邮件主题,发送 方,回复地址。

 

MailEngine: 邮件发送引擎。主要负责把我们生成的Email发送出去。它里面有一个JavaMailSender的实例,由spring提供。

 

VelocityEmailFactory: 邮件工厂,实现了EmailFactory接口。它将根据提供的velocity邮件模板和数据信息,生成一个待发送的Email实例。


MailBaseService: 抽象类,邮件服务的基础类,所有的邮件服务都将继承自它。它有一个VelocityEmailFactory实例,用于生成待发送的Email,还有一个MailEngine实例,用于发送Email。


MailByUserRegister :具体的邮件服务,继承自MailBaseService。它将在用户注册时,为用户填写的邮件地址发送一封邮件。它有一个对应的velocity格式的邮件模板,和一些初始化参数,如该类邮件的主题,该类邮件的回复地址等。它的任务就是在用户进行注册操作并且成功时被触发(运用了aop机制),然后根据模板和用户注册时填写的一些信息,由父类提供的VelocityEmailFactory生成一封邮件,然后由父类的MailEngine发送出去.

 

MailByOrder: 系统中另一个具体的邮件服务,在有预定产生时,为预定者发送一封邮件.

 

这个就是邮件系统的结构设计,接下来会把相应的具体实现写下来,唉,最近太忙了,只能尽力了!

 

本文地址:http://kino.iteye.com/blog/210349 , 转载请注明,谢谢!

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章