Beehive只是提供了三種訪問企業(yè)資源的系統(tǒng)控件,現(xiàn)實(shí)情況下我們需要訪問更多類型的企業(yè)資源,所以我們需要自己來開發(fā)符合自己需要的控件。在這篇文章里,作者將介紹如何基于控件架構(gòu)開發(fā)訪問javaMail資源的控件,簡(jiǎn)化對(duì)JavaMail資源的訪問。
從前面的文章中,我們已經(jīng)學(xué)習(xí)了Beehive中提供的三種訪問企業(yè)資源的控件:JDBC控件、EJB控件和JMS控件,而這也是Beehive中目前已經(jīng)提供的全部系統(tǒng)控件。然而J2EE標(biāo)準(zhǔn)中提供的企業(yè)資源類型遠(yuǎn)不止這三種,開發(fā)者選擇等待Beehive開發(fā)組提供更多的控件顯然是不明智的,我們必須自己動(dòng)手來解決控件的開發(fā)。
本文中就將給大家介紹如何基于控件架構(gòu)提供的API來開發(fā)自己的控件,我們選擇開發(fā)者經(jīng)常需要訪問的企業(yè)資源——JavaMail作為目標(biāo)資源,按照控件的命名規(guī)則,我們暫且叫做JavaMail控件吧。
要完成一個(gè)控件的設(shè)計(jì),通常需要完成如下的工作:
根據(jù)控件的使用情況,確定控件公共接口類中需要對(duì)外提供的接口方法,要確定這些接口方法可能會(huì)比較困難,因?yàn)橛行r(shí)候控件設(shè)計(jì)者可能難于確定是否為控件使用者提供低級(jí)接口以便使用者能夠深入的控制控件的行為。
控件實(shí)現(xiàn)類通常被設(shè)計(jì)成可擴(kuò)展(實(shí)現(xiàn)org.apache.beehive.controls.api.bean.Extensible接口)的,這樣方便使用者擴(kuò)展該實(shí)現(xiàn)類。控件實(shí)現(xiàn)類中最主要的方法是invoke(Method m,Object[] args)方法,這個(gè)方法的參數(shù) m 代表控件使用者調(diào)用的業(yè)務(wù)方法,而 args 數(shù)組則對(duì)應(yīng)著控件使用者調(diào)用該業(yè)務(wù)方法時(shí)提供的調(diào)用參數(shù),控件實(shí)現(xiàn)類需要根據(jù)使用者提供的注釋和調(diào)用業(yè)務(wù)時(shí)提供的參數(shù)完成控件主體功能的實(shí)現(xiàn)。
下面的章節(jié)中,我們將具體地講解假如依照上面的步驟來完成JavaMail控件的設(shè)計(jì)和開發(fā)。本文中所有例子的源代碼可以在通過資源下載區(qū)中的連接完成下載。
JavaMail控件的開發(fā)目標(biāo)是完成訪問SMTP服務(wù)器發(fā)送郵件的封裝,提供足夠的注釋滿足開發(fā)者在發(fā)送郵件時(shí)需要設(shè)置的參數(shù),同時(shí)提供郵件發(fā)送的實(shí)現(xiàn)方法使開發(fā)者在使用控件后無需編寫訪問SMTP服務(wù)器、設(shè)置郵件發(fā)送者/接收者等參數(shù)、發(fā)送郵件的代碼,而只需要將精力集中到業(yè)務(wù)邏輯上。
在開發(fā)控件之前,我們需要確定向開發(fā)者提供哪些注釋才能夠滿足他們定制控件的實(shí)際需求,因此我們首先要分析開發(fā)者使用這些控件時(shí)通常需要提供哪些參數(shù)。要訪問SMTP服務(wù)器發(fā)送郵件,開發(fā)需要提供的參數(shù)分為兩類:
1.目標(biāo)SMTP服務(wù)器的參數(shù)
目標(biāo)SMTP服務(wù)器的參數(shù)包括目標(biāo)SMTP服務(wù)器的地址,訪問SMTP服務(wù)器是否需要提供安全信息以及訪問SMTP服務(wù)器所需要的用戶名和密碼,其中目標(biāo)SMTP服務(wù)器的地址是必須的。我們需要提供的參數(shù)和相關(guān)要求如表1所示
表1 SMTP服務(wù)器參數(shù)表
2.被發(fā)送郵件的參數(shù)
要發(fā)送一個(gè)郵件,我們需要提供的參數(shù)和相關(guān)要求如表2所示。
表2 郵件參數(shù)表
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注