WEB开发网
开发学院WEB开发Jsp 基于控件构架开发访问JavaMail的控件 阅读

基于控件构架开发访问JavaMail的控件

 2008-01-05 08:25:16 来源:WEB开发网   
核心提示:Beehive只是提供了三种访问企业资源的系统控件,现实情况下我们需要访问更多类型的企业资源,基于控件构架开发访问JavaMail的控件,所以我们需要自己来开发符合自己需要的控件,在这篇文章里,默认使用text/plain,另外一种可选的类型是text/Html,作者将介绍如何基于控件架构开发访问javaMail资源的

Beehive只是提供了三种访问企业资源的系统控件,现实情况下我们需要访问更多类型的企业资源,所以我们需要自己来开发符合自己需要的控件。在这篇文章里,作者将介绍如何基于控件架构开发访问javaMail资源的控件,简化对JavaMail资源的访问。

从前面的文章中,我们已经学习了Beehive中提供的三种访问企业资源的控件:JDBC控件、EJB控件和JMS控件,而这也是Beehive中目前已经提供的全部系统控件。然而J2EE标准中提供的企业资源类型远不止这三种,开发者选择等待Beehive开发组提供更多的控件显然是不明智的,我们必须自己动手来解决控件的开发。

本文中就将给大家介绍如何基于控件架构提供的API来开发自己的控件,我们选择开发者经常需要访问的企业资源——JavaMail作为目标资源,按照控件的命名规则,我们暂且叫做JavaMail控件吧。

要完成一个控件的设计,通常需要完成如下的工作:

  1. 确定控件要完成的功能。
  2. 分析要完成控件的功能,确定没有使用控件之前我们通常需要提供哪些参数,这些参数是否可能组合成集合使用,参数是否必须提供,参数的类型等。
  3. 根据分析结果,设计和实现对应于这些参数的注释,这些注释能够完整地体现第二步中分析的结果。
  4. 定义和实现控件公共类

    根据控件的使用情况,确定控件公共接口类中需要对外提供的接口方法,要确定这些接口方法可能会比较困难,因为有些时候控件设计者可能难于确定是否为控件使用者提供低级接口以便使用者能够深入的控制控件的行为。

  5. 提供控件实现类

控件实现类通常被设计成可扩展(实现org.apache.beehive.controls.api.bean.Extensible接口)的,这样方便使用者扩展该实现类。控件实现类中最主要的方法是invoke(Method m,Object[] args)方法,这个方法的参数 m 代表控件使用者调用的业务方法,而 args 数组则对应着控件使用者调用该业务方法时提供的调用参数,控件实现类需要根据使用者提供的注释和调用业务时提供的参数完成控件主体功能的实现。

下面的章节中,我们将具体地讲解假如依照上面的步骤来完成JavaMail控件的设计和开发。本文中所有例子的源代码可以在通过资源下载区中的连接完成下载。

控件功能定义

JavaMail控件的开发目标是完成访问SMTP服务器发送邮件的封装,提供足够的注释满足开发者在发送邮件时需要设置的参数,同时提供邮件发送的实现方法使开发者在使用控件后无需编写访问SMTP服务器、设置邮件发送者/接收者等参数、发送邮件的代码,而只需要将精力集中到业务逻辑上。

需要提供的注释

在开发控件之前,我们需要确定向开发者提供哪些注释才能够满足他们定制控件的实际需求,因此我们首先要分析开发者使用这些控件时通常需要提供哪些参数。要访问SMTP服务器发送邮件,开发需要提供的参数分为两类:

1.目标SMTP服务器的参数

目标SMTP服务器的参数包括目标SMTP服务器的地址,访问SMTP服务器是否需要提供安全信息以及访问SMTP服务器所需要的用户名和密码,其中目标SMTP服务器的地址是必须的。我们需要提供的参数和相关要求如表1所示

表1 SMTP服务器参数表

参数名 参数类型 参数说明 是否必须提供 说明 serverAddress String SMTP服务器的地址 是 比如SMTP服务的地址是mail.vivianj.org authorizationRequired boolean 使用SMTP服务器发送邮件时是否需要提供安全信息 否 假如需要提供安全信息,这个参数设为true,否则设为false PRincipal String 访问SMTP邮件服务器时使用的用户名 否   credentials String 访问SMTP邮件服务器时使用的密码 否  

2.被发送邮件的参数

要发送一个邮件,我们需要提供的参数和相关要求如表2所示。

表2 邮件参数表

参数名 参数类型 参数说明 是否必须提供 例子 from String 邮件发送者 是   to String 邮件的接收者,可以使用xxx@xx.com,xxx1@xx.com,...的形式传递多个接收者 是 比如我们可以使用king@vivianj.org, guilaida@163.com 来设置邮件有两个接收者 cc String 邮件抄送的接收者,可以使用xxx@xx.com,xxx1@xx.com,...的形式传递多个抄送的接收者 否   bcc String 邮件暗送的接收者,可以使用xxx@xx.com,xxx1@xx.com,...的形式传递多个暗送的接收者 否   subject String 邮件的主题 否   contentType String 被发送邮件的格式,默认使用text/plain,另外一种可选的类型是text/Html,你还可以在这个参数中加入字符集的设置 否 比如我们可以使用”text/html;charset= GB2312”来设置被发送的邮件使用html格式,编码使用GB2312 attachment String 邮件附件 否   Content Object 邮件内容 否  

注释设计、实现


Tags:基于 控件 构架

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接