Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Java在Domino服务器上的拓展:让Domino具备面向方面的特征

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Domino具备面向方面的特征

 

 

       摘要本文把AspectJ应用于Domino服务器上Notes数据库的开发,

       从而实现让Domino具备一些面向方面特征的目的。

 

       关键字Lotus Domino/NotesLotus Domino DIIOP for JavaAspectJ

 

 

       如何把AspectJ应用于Domino的开发,从而让Domino具备一些面向的特征,是本文写作的目的。文中作者根据实际在Domino项目中对AspectJ的应用加以整理、简化——为初学者提供一个简要的入门。本文的结尾处提供了实例的源代码。

       下面分步骤进行讲解:

 

第一步AspectJ开发环境配置

       在实际项目开发中由于现在的AspectJ集成开发环境很少,因此笔者选用了最简单也是目前比较有效的开发工具:EditPlus。在使用EditPlus前,先作CLASSPATH设置如下:

d:\j2sdk1.4.2_02\jre\lib\rt.jar;d:\j2sdk1.4.2_02\lib\tools.jar;d:\aspectj\lib\aspectjrt.jar;d:\aspectj\lib\aspectjtools.jar;d:\lotus\domino\Notes.jar;d:\lotus\domino\data\domino\java\NCSO.jar

       笔者的Domino服务器安装在D:盘,Java SDK也在D:盘,同样AspectJ v1.2也解压安装在D:盘。

       接下来,设置EditPlus以方便开发,进入【工具】菜单,【选配置用户工具】出现:

 

Group 1

Javac

(

命令:D:\j2sdk1.4.2_02\bin\javac.exe

参数:-d “.” $(FileName)

)

 

接下来完成”AspectJ”条目设置:

AspectJ

(

命令:D:\aspectj\bin\ajc.bat

参数:-d “.” –argfile files.lst

)

 

第二步:用EditPlusDomino代理中开发方面

Notes数据库AspectJTest代理如下:

import lotus.domino.*;

public class JavaAgent extends AgentBase

{

       public void NotesMain()

       {

              try

              {

                     Session session = getSession();

                     AgentContext agentContext = session.getAgentContext();

                     // (Your code goes here)

                     OutPrinter();

              }

              catch(Exception e)

              {

                     e.printStackTrace();

              }

       }

       public void OutPrinter()

       {

              System.out.println("OutPrinter() work!");           // Domino控制台输出

       }

}

和该代理配套的方面如下:

aspect AspectJTest

{

       // 定义切点myCut()捕捉代理中的OutPrinter()方法

       pointcut myCut() :

              call(public void OutPrinter());

       // 在切点到达时完成前通知

       before() :

              myCut()

       {

              // Domino控制台输出

              System.out.println("... before ...");

       }

}

分析这两段程序代码可知:如果AspectJTest代理正常运行,那么在Domino控制台输出

"OutPrinter() work!"前将输出"... before ...",而这可能就是我们的目的。

 

第三步:制作files.lst文件并完成编译

       该文件是一个文本文件,它些组AspectJ编译器完成make-file功能。这里要注意的是:笔者在EditPlus中生成files.lst文件时,和JavaAgent.javaAspectJTest.java文件一齐都放在

D:\aspectjpro目录。

       接下来你可以选中按【工具】菜单的【AspectJ】条目,对这个具有面向方面特征的代理进行编译。生成JavaAgent.classAspectJTest.class文件。当然你也可以手工用下面的命令行编译它们:ajc -d "." -argfile files.lst

       这要求你作相应的PATH设置:ajc.batD:\aspectj\bin目录内。

 

第四步:创建数据库test.nsftest表单以及AspectJTest代理

       在服务器上创建test.nsf数据库并在test.nsf数据库中建立test表单,在test表单中放上一个按钮。以“AspectJ Test”为名称,而按钮的公式为@Command([ToolsRunMacro]; "AspectJTest")


第五步
:建立AspectJTest代理

       注意在建立AspectJTest代理时,你一定要在代理属性中作如下的选择:

  

代理名:AspectJTest

运行时选择:Agent list selection

       Taget:None

 

接下来选择 Imported Java】和【Reimport class files】引入类文件:aspectjrt.jarAspectJTest.classJavaAgent.class

 

注意这里把D:\aspectj\lib\aspectjrt.jar拷贝到了D:\aspectjpro目录。

 

在浏览器中浏览表单test并按下按钮“AspectJ Test”,你将会在Domino控制台中看见输出:

… before …

OutPrinter() work!

 

我们看到“… before …”输出代了“OutPrinter() work!”前,这也是我们的目的。

 

       本文程序实例在Lotus Domino R6.5下运行正常且非常稳定。

 

结论:本文完整地在Domino中成功引入了AspectJ这一面向方面的语言,虽然简单但说明了Domino可以具备一些面向方面的特征。

 

自我介绍:

 

屈忠慰,男,1988年开始从事软件开发,精通多门计算机语言,对软件体系有深刻认识.现在主要将精力集中在DominoJ2EE的企业级分布式计算上,目前主要针对AspectJ进行研究以及企业级推广应用和项目实施。有兴趣的朋友可以发邮件到[email protected]

联系电话:13008687769QQ308742908

 

 

 

 

 

 

 

 

 




相关文章

相关软件