①下载安装AspectJ
到Aspect下载页面下载最新版的Aspect,然后在命令行下运行下载到jar文件:java -jar xxxx.jar,按照提示进行安装
安装完毕后
将安装目录下的lib文件下的aspectjrt.jar复制到jre安装目录下的ext文件夹
例如:将E:\Program Files\Java\aspectj1.8\lib\aspectjrt.jar文件复制到E:\Program Files\Java\jdk\jre\lib\ext目录下
将安装目录下的bin文件夹添加到环境变量path中
例如:将E:\Program Files\Java\aspectj1.8\bin添加到环境变量path中
②安装AJDT插件
到AJDT下载页面下载适合自己Eclipse版本的AJDT插件
解压下载下来的压缩包中的feature和plugins目录下的内容加入到Eclipse的相应同名目录中即可完成AJDT的安装,之后重启Eclipse
我们来看看能不能新建AspectJ Project
右键->New->Other->AspectJ->AspectJ Project
新建项目成功!
当你在项目中出现aspect关键字时,会有波浪线,把鼠标放在那里eclipse就会提示你切换到AspectJ/Java Editor来编辑,就能识别这些新aspectJ中的关键字了
或者可以直接右键你要编辑的Java文件选择Open With中的AspectJ/Java Editor来打开
③编写AspectJ Example
Hello.java
package com.aspectJ.test;
public class Hello {
public void sayHello() {
System.out.println("sayHello");
}
}
HelloAspect.java
package com.aspectJ.test;
public aspect HelloAspect {
pointcut logPointcut():execution(void Hello.sayHello());
after():logPointcut(){
System.out.println("Logging : After sayHello");
}
}
Main.java
package com.aspectJ.test;
public class Main {
public static void main(String args[]) {
new Hello().sayHello();
}
}
右键Main.java选择Run as中的AspectJ/Java Application 运行
输出
sayHello
Logging : After sayHello
③使用Ant管理AspectJ项目
在项目中新建libs文件夹,把AspectJ安装目录下aspectjtools.jar放到该文件夹中
新建build.xml内容如下
<?xml version="1.0" encoding="utf-8"?>
<project name="test" basedir="." default="">
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<path id="classpath">
<fileset dir="libs">
<include name="**/*.jar"/>
</fileset>
<pathelement path="${dest}"/>
</path>
<taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties">
<classpath refid="classpath"/>
</taskdef>
<target name="compile" description="Compile all source code">
<delete dir="${dest}"/>
<mkdir dir="${dest}"/>
<copy todir="${dest}">
<fileset dir="${src}">
<exclude name="**/*.java"/>
</fileset>
</copy>
<iajc destdir="${dest}" debug="true"
deprecation="false" failοnerrοr="true">
<src path="${src}"/>
<classpath refid="classpath"/>
</iajc>
</target>
<target name="run" description="Run the main class" depends="compile">
<java classname="com.aspectJ.test.Main" fork="yes" failοnerrοr="true">
<classpath refid="classpath"/>
</java>
</target>
</project>
关键点:
<taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties">
<classpath refid="classpath"/>
</taskdef>
这组标签的存在是为了支持iajc标签,所以当然要把aspectjtools.jar放到类加载路径中
然后用iajc标签代替javac标签来编译项目
然后就可以再命令行执行 ant run 来运行项目了
注:本文代码参考李刚的《轻量级Java EE 企业应用实战3.0》
aspectJ学习资源: