国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

基于控件構(gòu)架開發(fā)訪問JavaMail的控件

2019-11-18 15:33:24
字體:
供稿:網(wǎng)友

  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ì),通常需要完成如下的工作:

  1. 確定控件要完成的功能。
  2. 分析要完成控件的功能,確定沒有使用控件之前我們通常需要提供哪些參數(shù),這些參數(shù)是否可能組合成集合使用,參數(shù)是否必須提供,參數(shù)的類型等。
  3. 根據(jù)分析結(jié)果,設(shè)計(jì)和實(shí)現(xiàn)對(duì)應(yīng)于這些參數(shù)的注釋,這些注釋能夠完整地體現(xiàn)第二步中分析的結(jié)果。
  4. 定義和實(shí)現(xiàn)控件公共類

      根據(jù)控件的使用情況,確定控件公共接口類中需要對(duì)外提供的接口方法,要確定這些接口方法可能會(huì)比較困難,因?yàn)橛行r(shí)候控件設(shè)計(jì)者可能難于確定是否為控件使用者提供低級(jí)接口以便使用者能夠深入的控制控件的行為。

  5. 提供控件實(shí)現(xiàn)類

  控件實(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ù)表

參數(shù)名參數(shù)類型參數(shù)說明是否必須提供說明serverAddressStringSMTP服務(wù)器的地址是比如SMTP服務(wù)的地址是mail.vivianj.orgauthorizationRequiredboolean使用SMTP服務(wù)器發(fā)送郵件時(shí)是否需要提供安全信息否假如需要提供安全信息,這個(gè)參數(shù)設(shè)為true,否則設(shè)為falsePRincipalString訪問SMTP郵件服務(wù)器時(shí)使用的用戶名否 credentialsString訪問SMTP郵件服務(wù)器時(shí)使用的密碼否 

  2.被發(fā)送郵件的參數(shù)

  要發(fā)送一個(gè)郵件,我們需要提供的參數(shù)和相關(guān)要求如表2所示。

表2 郵件參數(shù)表

參數(shù)名參數(shù)類型參數(shù)說明是否必須提供例子fromString郵件發(fā)送者是 toString郵件的接收者,可以使用xxx@xx.com,xxx1@xx.com,...的形式傳遞多個(gè)接收者是比如我們可以使用king@vivianj.org, guilaida@163.com 來設(shè)置郵件有兩個(gè)接收者ccString郵件抄送的接收者,可以使用xxx@xx.com,xxx1@xx.com,...的形式傳遞多個(gè)抄送的接收者否 bccString郵件暗送的接收者,可以使用xxx@xx.com,xxx1@xx.com,...的形式傳遞多個(gè)暗送的接收者否 subjectString郵件的主題否 contentTypeString被發(fā)送郵件的格式,默認(rèn)使用text/plain,另外一種可選的類型是text/Html,你還可以在這個(gè)參數(shù)中加入字符集的設(shè)置否比如我們可以使用”text/html;charset= GB2312”來設(shè)置被發(fā)送的郵件使用html格式,編碼使用GB2312attachmentString郵件附件否 ContentObject郵件內(nèi)容否 

注釋設(shè)計(jì)、實(shí)現(xiàn)



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 常熟市| 麻江县| 九龙城区| 镇赉县| 鸡西市| 武强县| 汝城县| 呼图壁县| 三门县| 东源县| 奈曼旗| 周至县| 大连市| 兴业县| 堆龙德庆县| 深水埗区| 金阳县| 灵宝市| 峨眉山市| 阜康市| 清远市| 海晏县| 子洲县| 星子县| 凉山| 上饶市| 洛南县| 吐鲁番市| 赤城县| 孙吴县| 南城县| 钦州市| 江达县| 太保市| 讷河市| 泉州市| 绩溪县| 和田市| 诏安县| 宁南县| 天水市|