ajdt插件安装后无效_使用Eclipse和AJDT开发面向方面的Java应用程序

AspectJ Eclipse开发工具(AJDT)是一个开源Eclipse技术项目,它提供开发和运行AspectJ应用程序所需的工具。 我们认为,好的工具在实现面向方面的编程的全部好处方面,尤其是在帮助新手了解所涉及概念方面,可以发挥关键作用。

阅读本文之后,我们希望您对AJDT为使用AspectJ提供的支持感到满意。 我们将首先向您展示如何启动和运行AJDT。 然后,我们将直接进行研究,从头开始创建一个AspectJ应用程序。 您将看到如何创建方面和Java类,以及如何运行应用程序。 我们的第一个示例非常简单,可以将重点放在工具上,并介绍AJDT提供的可帮助您进行开发的不同视觉和导航功能。 即使这样,这个简单的应用程序仍说明了各个方面的一种实际用法。

然后,我们转到一个稍微复杂的示例,以便我们可以更详细地探索这些工具,并向您展示如何使用现有项目。 此示例具有应用程序必不可少的几个方面,以及仅在实际调试应用程序时才希望包含的调试方面。 我们展示了AJDT如何使您能够选择性地应用和删除此调试方面。 之后,我们将访问强大的“可视化”透视图,以更深入地了解许多不同方面如何影响应用程序的其余部分。 最后,我们看一下工具的两个更高级的功能,包括用于调试AspectJ应用程序和生成文档的功能。

在整篇文章中,我们假设对AspectJ和面向方面的编程(AOP)有一些基本的了解。 有关介绍材料上AOP和AspectJ编程,请参阅相关主题 ; 或者,您可以安装AJDT并单击“ AspectJ”的“帮助”链接,您可以在其中找到AspectJ文档。

安装AJDT

要继续本文,您将需要运行1.1.11或更高版本的AJDT,该版本需要Eclipse 3.0(最终版)。 有一个早期版本的AJDT可与Eclipse 2.1一起使用。 但是,我们在本文中讨论的许多功能是在1.1.11版中添加的。

要为Eclipse 3.0安装最新的AJDT,请执行以下步骤:

  1. 启动Eclipse,然后转到“ 帮助”>“软件更新”>“查找并安装...”
  2. 搜索新功能以安装并添加一个新的名为AJDT更新站点的远程站点 ,该站点的URL为http://download.eclipse.org/technology/ajdt/30/update。

    如果需要代理服务器访问Internet,请通过“ 窗口”>“首选项”>“安装/更新”设置代理首选项
  3. 展开“ AJDT更新站点”节点,然后选择AspectJ 。 选择安装Eclipse AspectJ开发工具,然后阅读并接受版权声明。
  4. 点击完成

从1.1.11版开始,AJDT已完全集成到Eclipse 3.0框架中,因此有多种方法可以确保正确安装它。 其中最有用的是AJDT文档与Eclipse帮助和Eclipse Platform欢迎页面的集成。 要导航到AJDT帮助和AspectJ 1.2的文档,请选择“ 帮助”>“帮助目录” 。 要查看AJDT的新增内容,请选择“ 帮助”>“欢迎”,然后选择“ 概述”,“教程”,“示例”“新功能”链接中的任何一个。 特别是,遵循教程>构建简单的AspectJ应用程序链接可以激活Simple AspectJ Application 备忘单 。 备忘单是Eclipse 3.0中的一项新功能,AspectJ备忘单扩展了Java备忘单中详细介绍的Java“ Hello World”应用程序。 (您也可以通过转到“ 帮助”> “备忘单”并选择所需的备忘单来访问备忘单。)

第一步

现在,您已经安装了AJDT,让我们探究它如何支持AspectJ应用程序的创建和运行。 为此,我们将创建一个仅由一个方面和一个类组成的简单AspectJ应用程序,并在此过程中检查实现这一点所需的AJDT功能。 该应用程序做了一些人为设计,但可以满足我们的目的。 在其中,我们仅计算两个数字的平方。 最初,每次给程序一个数字时,它都会从头开始计算平方,并且我们在此方法内添加了Thread.sleep()调用,以确保花费一些时间。 但是,通过添加缓存方面,我们可以检查是否已经为给定输入计算了结果。 如果是这样,则返回缓存的值;否则,返回0。 如果不是,则按常规计算平方,并将结果添加到缓存中。 因此,缓存方面将提高我们应用程序的性能。 (有关使用方面进行缓存的讨论,请单击“ 相关主题”部分中的“方面博客”链接。)

如果您已经使用JDT Eclipse工具进行Java开发,那么将AJDT用于AspectJ开发将是一种熟悉的体验。 要创建一个新的AspectJ项目,请按照下列步骤操作:

  1. 选择窗口>打开透视图> Java以打开Java透视图。
  2. 选择“ 文件”>“新建”>“ AspectJ项目”以打开“新建AspectJ项目”向导。
  3. 调用项目“ 缓存示例”,单击“ 下一步”,然后添加一个名为src的源文件夹。
  4. 单击完成以在您的工作区中创建新项目。

注意:如果这是您在工作区中创建的第一个AspectJ项目,则AJDT首选项配置向导将在步骤4之后出现。该向导配置了一些Eclipse设置,使您的工作变得更轻松。 接受向导的默认设置,然后单击“ 完成”。

在Package Explorer中展开项目节点,您将看到以与JRE系统库相同的方式添加了AspectJ运行时库Aspectjrt.jar。 现在,选择您的项目,然后转到File> New> Package创建一个名为caching的软件包,并转到File> New> Class在您的caching软件包中创建一个名为Application的类。 这就像该项目是Java项目一样。

现在编辑您的类,使其类似于清单1。

清单1.应用程序的主类
package caching;

public class Application {
	
    public static void main(String[] args) {
        System.out.println("The square of 45 is " + calculateSquare(45));
        System.out.println("The square of 64 is " + calculateSquare(64));
        System.out.println("The square of 45 is " + calculateSquare(45));
        System.out.println("The square of 64 is " + calculateSquare(64));
    }
	
    private static int calculateSquare(int number) {
        try {Thread.sleep(7000);}
        catch (InterruptedException ie) {}
        return number * number;
    }	
}

从清单1中的代码中,您可以看到在我们的类中,我们有一个main()方法,该方法对calculateSquare()方法进行了四个调用,第二对调用是第一对的重复。 该calculateSquare()方法暂时什么也不做,然后返回输入参数的平方。

在添加缓存方面之前,让我们运行应用程序。 与Java项目中的Java应用程序一样,要运行该应用程序,您需要在Package Explorer中选择包含main()方法的Java类。 在我们的案例中,这是我们唯一的类:Application.java。 选择此类后,右键单击它以打开上下文菜单,然后选择“运行”>“ Java应用程序”。 您会注意到计算平方需要一些时间。

现在让我们为应用程序添加一个方面。 创建方面的过程与创建Java类的过程具有相同的外观。 要创建一个称为Cache的方面,请转到File> New> Aspect打开New Aspect向导。 与“新建Java类”向导一样,您需要选择要在其中创建方面的包,为其指定名称,然后单击“ 完成”。 在Package Explorer中,您应该看到已经创建了一个名为Cache.aj的文件。 默认情况下,方面是在扩展名为.aj的文件中创建的,尽管您也可以在.java文件中包含方面。

编辑Cache.aj,使其包含清单2中的代码。

清单2.向我们的应用程序添加缓存的一个方面
package caching;

import java.util.Hashtable;

public aspect Cache {
    private Hashtable valueCache;

    pointcut calculate(int i) : args(i) 
        && (execution(int Application.calculateSquare(int)));
	
    int around(int i) : calculate(i) {	
        if (valueCache.containsKey(new Integer(i))) {
            return ((Integer) valueCache.get(new Integer(i))).intValue();
        } 
        int square = proceed(i);
        valueCache.put(new Integer(i), new Integer(square));
        return square;
    }
	
    public Cache() {
        valueCache = new Hashtable();
    }
}

从清单2中的代码中,您可以看到在Cache方面,我们首先创建一个哈希表来记录数字及其平方。 然后,我们指定一个称为calculate的切入点。 这与名为Application.calculateSquare()的任何方法的执行匹配,该方法接受并返回一个整数值。 因为如果尚未计算给定数字的平方,我们只想执行Application.calculateSquare()方法,我们将在建议周围使用。 该建议采用一个整数参数并返回一个整数值。 在建议的正文中,我们首先检查输入值是否在哈希表中。 如果是,我们返回相应的结果; 如果不是,那么我们继续执行calculateSquare()方法。 在从around建议返回之前,我们使用这些新值更新哈希表。

如果您将Eclipse设置为自动构建项目,那么剩下的就是运行AspectJ应用程序! 如果不是这种情况,请在Package Explorer中选择AspectJ项目,然后单击Build按钮,如图1所示。您现在就可以开始了。 由于您已经运行了此应用程序的较早版本,因此应该已全部设置了运行配置。 因此,要运行AspectJ应用程序,请从任务栏中选择“运行”按钮(图1),然后选择“ 应用程序” 。 您会注意到,现在第二次计算平方所需的时间大大减少了!

图1.构建和运行按钮
生成并运行按钮

大纲视图和编辑器标记

现在,我们已经编写并运行了简单的AspectJ应用程序,下面让我们看一下AJDT如何帮助您理解和使用它。 在编辑器中打开Cache方面之后,查看Eclipse Outline视图,该外观应类似于图2。

图2. Cache方面的大纲视图
缓存方面的轮廓图

大纲视图显示当前文档的结构。 对于Cache方面,我们有一个import声明,然后有一个名为Cache的方面,而不是一个类。 您会注意到,在Cache正下方有四个不同的节点,每个节点对应于方面中的功能。 第一个是valueCache私有字段-记住,方面可以像类一样包含方法和字段。 接下来,我们有一些不同:标记为calculate(int)的闪电图标。 这表示切入点; 单击它,编辑器将跳到相应的行。 代表周围建议的下一个节点使事情变得更加有趣。 展开此节点,您将看到一个“ advises”节点,该节点本身也会展开以显示一个称为Application.calculateSquare(int)的私有静态方法。 在这里,AspectJ增强的Outline视图将我们带到了当前源文件的基本结构之外,向我们展示了此结构(周围的建议)与系统中另一结构的关系-在这种情况下,该方法被建议。 此外,关系的目标是超链接-只需单击Application.calculateSquare(int)节点,编辑器将切换到包含的源文件(Application.java)并突出显示建议的方法。

现在,在编辑器中打开了Application.java,Outline视图应该如图3所示。

图3. Application类的大纲视图
应用程序类的大纲视图

最初,此源文件的Outline视图看上去与没有AJDT的普通Java世界中的外观相当。 但请注意,可以扩展validateSquare calculateSquare()方法的节点以显示一个“ advised by”节点,然后是一个显示建议源的节点-在这种情况下,是Cache方面的around建议(这是一个链接)。

现在,回到编辑器本身,它显示了Application类。 在窗口的左边缘(称为装订线 ),在calculateSquare()方法声明旁边有一个标记,其图标与“大纲”视图中的图标相同。 在编辑器的右侧栏中,还有一个橙色块标记了相同的方法声明。 两者都表明一些建议正在此处生效。 将鼠标箭头移到这些指示器上; 您会收到一条消息,告诉您他们正在标记“ Cache方面的“周围”建议所建议的位置。 最后,您可以右键单击建议标记,然后打开“建议者”菜单以查看适当的建议。 选择此建议以导航到它,如图4所示。

图4.菜单建议
菜单建议

这就是使用AJDT创建,运行和探索简单AspectJ项目的横切结构所需的全部工作!

太空战争的例子

现在,我们已经通过一个简单的示例介绍了AJDT,是时候探讨它为从事稍大项目的AspectJ程序员提供的支持了。 我们将重新访问Outline视图,了解如何有选择地从应用程序中添加和删除方面,并最终了解如何使用强大的Visualization透视图获得项目的概述。

有用的是,AJDT包括来自AspectJ核心发行版的示例,以及一个向导,使添加它们到您的工作区非常容易。 太空战争的例子是较大的例子之一,它很好地满足了我们的目的。 (同样,对于本文的这一部分,您将需要1.1.11或更高版本的AJDT,因为早期版本中未包含Spacewar示例。)让我们开始吧:

  1. 在Eclipse中,转到“ 文件”>“新建”>“其他”。
  2. 在出现的对话框中,展开AspectJ文件夹,然后展开AspectJ Examples文件夹,然后选择Spacewar Example
  3. 单击下一步按钮。 您可以输入项目的名称或接受默认名称。
  4. 单击“ 完成” ,“新示例”向导将为您创建一个AspectJ项目,向该示例添加所有必需的文件,如果尚未存在,则切换到Java透视图。

如果您将Eclipse设置为自动构建,那么该示例也将被编译-否则,您将需要自己触发构建,就像上面我们对简单应用程序所做的那样。

让我们检查一下一切是否正常,并查看示例在运行时的外观。 在main()的示例性方法是在Game.java在spacewar包; 要启动它,请选择文件,然后转到运行>运行方式> Java应用程序。 然后应出现两个游戏窗口。 您使用光标键和空格键来控制游戏。 其余的您可以自己解决!

现在,我们将探索一些Spacewar代码,以查看更多的Outline视图和实际的编辑器标记。 让我们看一下SpaceObjectPainting方面,它在Display1类中定义为内部方面。 在编辑器中打开Display1.java,并在Outline视图中展开SpaceObjectPainting方面的节点,如图5所示。

图5. SpaceObjectPainting方面的轮廓视图
SpaceObjectPainting方面的轮廓图

在这里,我们看到了几个图标,与之前看到的“周围建议”图标不同。 第一个代表抽象的类型间声明-方面是代表SpaceObject类定义paint()方法。 您可以通过展开节点来查看。 接下来是另一个内部类型声明,这次是一个字段Ship.color 。 接下来是返回匿名切入点上声明的建议之后的一些建议,该建议适用于方法正常返回时(即不引发异常)的情况。 您可能会在“大纲”视图中看到的其他一些图标,以及在编辑器装订线中作为标记的一些图标是:

  • 之前的建议(
  • 声明父母(
    ),其中定义了一个类以实现接口或扩展了一个类
  • 声明警告(
    )或声明错误(
    ),如果未遵循某些政策,则可用于触发编译器警告或错误
  • 宣告柔软(
    ),其中已将检查的异常软化为未检查的异常

构建配置

一些方面构成系统的组成部分,而其他方面则用于提供仅在某些时候需要的特定功能,例如调试支持。 因此,您经常需要选择性地在应用程序中添加和删除方面。 AJDT使用构建配置的概念来提供此功能,该配置配置定义了项目中传递给编译器的源文件。 通过在Eclipse中从Package Explorer中直接操作源文件,这些工具使使用构建配置变得容易。 Spacewar示例具有调试方面,该方面最初已从构建配置中删除。 如果仔细查看Package Explorer,如图6所示,您将看到Debug.java的图标被挖空,表示已将其排除在外。 还请注意, spacewar软件包的图标已部分清空,以表示已排除其中一些(但不是全部)软件包。

图6.包含资源的包资源管理器
具有排除资源的Package Explorer

您可以通过右键单击Debug.java文件并选择Include in“ demo”配置菜单选项,将调试方面添加到项目中。 现在将填充源和包图标,如图7所示,并且将构建包含该文件的项目(除非禁用了Eclipse自动构建)。

图7.包含所有内容的Package Explorer
包含所有内容的Package Explorer

如果现在再次运行Spacewar程序,您将看到一个包含调试信息的新窗口。

要排除方面,只需再次右键单击源文件,然后选择“ 排除”选项。 您也可以按住Shift或Ctrl键来选择要包含或排除的多个源文件,甚至整个包。 以这种方式进行的更改会影响当前或活动的构建配置,但是有时保留特定的配置以供以后使用很有用。 这是通过将扩展配置存储在扩展名为.ajproperties的文件中来完成的。 如果在Package Explorer中查找Spacewar代码,您将看到两个这样的文件,分别是demo.ajproperties和debug.ajproperties,如图8所示。其中一个图标中有一个三角形,表示它是活动配置。 使用“包括”和“排除”上下文菜单选项对配置所做的任何更改都将写入当前活动的配置文件中。

图8.构建配置文件
构建配置文件

要切换到其他构建配置,只需选择适当的属性文件,单击鼠标右键,然后从上下文菜单中选择“ 激活此配置 ”。 然后使用新设置重建项目。 在构建配置之间切换的另一种方法是选择Project> Activate build configuration ,它显示一个子菜单,其中包含当前项目中存在的所有构建配置。 该子菜单还具有“另存为...”选项,通过将当前配置写到新文件中,您可以创建新的构建配置。

最后,您也可以直接编辑配置文件。 双击构建配置文件以在关联的构建配置编辑器中将其打开。 此操作将显示项目中源文件的树状视图,并带有复选框以从配置中添加或删除资源,如图9所示。

图9.构建配置编辑器
构建配置编辑器

方面可视化角度

如果您要编写面向方面的应用程序,则可以从可视化这些应用程序的新方法中受益。 您需要能够理解方面和类之间的关系,并对应用程序的行为有一个整体的了解。 例如,您的方面会影响多少个类? 如前所述,AJDT提供了用于浏览代码,显示所建议内容等的高级功能。 在此基础上,AJDT还提供了自己的方面可视化角度。 此功能专门用于帮助您查看应用程序中的横切关注点。 要激活此透视图,请转到“ 窗口”>“打开透视图...”,然后选择“外观可视化”。 您应该得到一个类似于图10的显示。

图10.可视化透视图
可视化角度

打开此透视图后,您会注意到,重点是可视化而不是编码。 集成到Aspect Visualization透视图中的主要可视化工具是位于透视图中心的Visualiser。 如果您使用的是早期版本的AJDT,那么Visualiser对您来说并不是什么新鲜事物。 但是,在以前的版本中,它曾经是AJDT的一部分,而现在它是一个独立的插件。 这意味着可以编写自己的提供程序来使用Visualiser来查看自己的数据(有关Visualiser的更多信息,请选择Help> Help Contents> Visualiser )。 但是,在Aspect Visualization透视图中,我们正在使用AspectJ提供程序,如图10所示。它以条形表示项目中的类和方面,而在这些条上以条带表示方面影响代码的位置。 条形的长度与文件大小有关-条形越长,条形表示的文件中的代码行越多!

要填充Visualiser,只需在最左侧的“项目”视图中选择一个AspectJ项目,或在其右侧的“包”视图中选择一个包。 看一下“太空大战”的例子,您会看到有些条变成灰色,有些条只有一个彩色条纹,而有些条却有多个彩色条纹。 (有时一行中甚至有多个条纹!)灰色的条表示不受任何建议影响的类或方面。 通过按下图11中所示的按钮,您可以选择过滤掉这些不受影响的条。

图11. Visualiser控件
可视化控件

查看其余受影响的条及其条纹,您将看到颜色与Visualiser菜单(位于Visualiser右侧)中的按钮上的颜色匹配。 每个彩色按钮旁边是一个复选框和一个标签。 标签给出了颜色表示的方面的名称(或在内部方面的情况下,包含该方面的类),并且复选框指示该方面是否已包含在当前可视化中。 因此,如果您有多个方面,则可以过滤掉您不感兴趣的任何方面。例如,如果您使用debug.ajproperties构建配置来构建Spacewar示例,然后返回到Visualiser,则可以决定您只是想看看您的Debug方面正在影响什么。 如图12所示,在Visualiser菜单中取消选择除Debug方面以外的所有内容,都可以准确地看到这一点,另一种判断哪种颜色代表特定方面的方法是将鼠标悬停在您感兴趣的条纹上。这给出了名称条纹代表的方面。 如果一个条纹有不止一种颜色,那么影响这一行代码的就不止一个方面!

图12.可视化调试方面的效果
可视化调试方面的效果

Visualiser的另一个非常重要的功能是它也提供了一种浏览代码的方式。 看过太空战示例的可视化后,我们可以看到其中有一个Display方面。 我们尚未研究代码,因此您可能对这方面的功能感到好奇。 我们可以看到它影响到四个类,但是它们是什么? 将鼠标悬停在这些受影响类的每个栏顶部的深灰色条纹上,我们发现它们分别是spacewar.Displayspacewar.Gamespacewar.SWFramespacewar.Timer 。 但是方面建议的确切内容是什么? 双击spacewar.Game栏上的条纹,您将看到:您直接进入Game.java中受Display方面影响的点,它出现在Aspect Visualization底部的Editor视图中透视。

调试

调试包含方面的应用程序就像调试不包含方面的应用程序一样容易,因此,如果您习惯于在Eclipse中使用Java调试器,那么这里再也没有什么真正的新鲜事物了。 自AJDT 1.1.11出现以来,在建议之前和之后设置断点与在方法中设置断点相同。 在建议周围设置断点略有不同; 如果您希望调试器在这样的断点处停止,则需要关闭内联。 为此,请转到“ 窗口”>“首选项”>“ AspectJ”>“编译器” ,然后导航到“ 高级”选项卡。 到达那里后,选中“ 无内联”选项,然后单击“ 确定”

为了更详细地显示调试AspectJ应用程序与调试标准Java应用程序有何相似之处,让我们在Spacewar示例中设置一个断点并逐步执行代码。 首先,转到窗口>打开透视图>调试 ,切换到“调试”透视图 因为我们是从Aspect Visualization透视图中Display类的,所以让我们在after () returning (Player player): call(Player+.new(..))一个断点after () returning (Player player): call(Player+.new(..))建议。 打开Display.java类,并返回建议后的导航,如图13所示。然后,双击Enumeration elements = DISPLAYS.elements();行旁边的装订线Enumeration elements = DISPLAYS.elements(); 或右键单击并从同一位置选择“ 切换断点 ”。

图13.设置一个断点
设置断点

设置断点后,要以调试模式启动应用程序,请按照与普通Java应用程序相同的步骤进行操作。 从绿色bug的下拉菜单(绿色bug位于工作台工具栏上)中,选择您的Spacewar运行配置,然后就可以了! 如果没有设置Spacewar运行配置,则从相同的下拉菜单中选择Debug ...创建一个新的Java应用程序配置,该配置在spacewar.Game类中运行main()方法,然后按Debug 。

到达断点后,调试模式将暂停Spacewar应用程序,如图14所示。有关所有当前变量的信息,可以在Debug透视图右上角的Variables视图中以及堆栈中找到。可以在“调试”透视图左上方的“调试”视图中找到当前线程的跟踪。 您可以在代码中的暂停点在编辑器中看到。 要逐步执行代码,只需在“调试”视图中按“ 跳过”按钮。 就这么简单!

图14.到达断点
到达断点

产生文件

您可以根据源代码中的特殊格式注释,使用javadoc工具为Java项目生成API文档。 从1.2版开始,AspectJ发行版包含一个名为ajdoc的工具。 这是一个扩展javadoc ,增加了您的方面交叉性的细节,所产生的文档javadoc 。 Eclipse中的JDT工具包括一个用于调用和配置javadoc工具的向导,并且在安装了AJDT的情况下,类似的向导可用于ajdoc

要调用ajdoc向导,请选择“ 项目”>“生成ajdoc ...”菜单选项。 在出现的对话框中,只需选择要为其生成API文档的项目。 在我们的示例中,这是“太空大战”示例,如图15所示。

图15. ajdoc向导
ajdoc向导

Spacewar代码中的许多类和方法不是公开的,因此要使生成的文档更有用,请在对话框的可见性部分中选择“ 专用”选项。 对话框底部的“目标”字段指定输出位置,该位置默认为项目中的doc目录。

现在,单击“ 下一步”按钮转到下一页 ,该页面允许指定任何其他选项。 选择在浏览器中打开生成的索引文件选项,以便您可以在生成生成的文档后立即查看。 单击“ 完成”后,系统将询问您是否要更新javadoc位置-如果在此处说“是”,则它只会记住下一次的输出位置。 然后启动ajdoc工具,如果要观看它的运行,可以在Eclipse中切换到“控制台”视图。 完成后,索引页应显示在Web浏览器中。 如果导航到spacewar.Registry方面,您将看到常规javadoc输出已得到增强,以显示建议在何处生效,如图16所示。

图16.生成的文档
生成的文件

更多选择

通过AJDT,还有更多选项和设置可供您使用-太多了,无法在此处全部提及! 重点包括高级编译器选项,您可以在其中配置编译器以忽略各种编码问题或将其声明为警告或错误; 其他项目属性页面,用于指定AspectJ InPath和Aspect Path类路径条目; 以及向“问题”视图发送信息性编织消息的选项(利用AspectJ 1.2的这一新功能)。 还有许多可用的AspectJ特定的代码模板(有关这些模板的列表,请选择Windows> Preferences打开“ Preferences”对话框,然后转到Java> Editor> Templates )。 有关这些功能的更多信息以及更多信息,请参考Eclipse帮助-新增功能和AJDT Highlights页面。

结论

尽管许多更高级的主题不在本文讨论范围之内,但我们希望您现在对AJDT为AspectJ提供的面向方面的编程提供的支持感到满意。 如您所见,从方面看,面向方面应用程序的横切性质通过工具以多种方式得以体现,从“大纲”视图和编辑器侧面的标记,到强大的“可视化”透视图,它为您提供了更高层次的视图您的应用程序。

AJDT最近已经在许多方面进行了改进(有关更多详细信息,请参见最新的1.1.11和1.1.12版本的值得注意的新列表),但是这一领域的挑战程度意味着仍然有足够的空间以获得进一步的增强。 正在进行一个名为Lancaster的项目的实验工作,该项目正在研究与JDT进行更紧密集成的方法。 这将在诸如代码完成,格式化,搜索,浏览,重构以及在Package Explorer和其他视图中显示方面的结构等方面实现更完整的功能。 最近在此方面的进展很好,因此请注意不久的将来的1.2.0 beta版本。 目的是使AJDT与JDT保持一致。 除此以外,重点将放在开发新功能上,使您能够通过切入点向导和对特定方面的重构的支持等功能,进一步学习和利用AOP。 有很多期待!

最后,AJDT是一个开源项目,因此它依赖于人们以各种方式参与,从用户提供反馈,提出错误和功能请求到开发人员提交补丁。 如果您想参与,请访问AJDT网站(请参阅相关信息 ),并寻找链接的Bugzilla,新闻组,开发人员邮件列表,以及到做任务的页面。


翻译自: https://www.ibm.com/developerworks/java/library/j-ajdt/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值