系統中的郵件子模塊-設計

最近在做新系統,又遇到了發送郵件的問題,我們這個系統有一定的特殊性,可能需要發送郵件的地方比較多。於是想着怎麼做的靈活一點,更能響應以後的需求變化,於是有了現在的這個實現。

 

總的來說,使用了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 , 轉載請註明,謝謝!

 

 

 

 

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