|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
摘要:本文把AspectJ应用于Domino服务器上Notes数据库的开发, 从而实现让Domino具备一些面向方面特征的目的。 要害字:Lotus Domino/Notes、Lotus Domino DIIOP for Java、AspectJ。 如何把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 “.” ?Cargfile files.lst ) 第二步:用EditPlus在Domino代理中开发方面 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.java、AspectJTest.java文件一齐都放在 D:/aspectjpro目录。 接下来你可以选中按【工具】菜单的【AspectJ】条目,对这个具有面向方面特征的代理进行编译。生成JavaAgent.class和AspectJTest.class文件。当然你也可以手工用下面的命令行编译它们:ajc -d "." -argfile files.lst 这要求你作相应的PATH设置:ajc.bat在D:/aspectj/bin目录内。 第四步:创建数据库test.nsf和test表单以及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.jar、AspectJTest.class、JavaAgent.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可以具备一些面向方面的特征。 返回类别: 教程 上一教程: Java--ImageViewer 下一教程: J2ME中暂时无法完成的功能 您可以阅读与"Java在Domino服务器上的拓展:让Domino具备面向方面的特征"相关的教程: · 纯 jsp 操作服务器上的文本文件 [1] · 体验Java 1.5中面向方面(AOP)编程 · 纯 jsp 操作服务器上的文本文件 [2] · PHP4在WINXP下IIS和APACHE2服务器上的安装实例 · 评估Java在商务集成方面的特性 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |