说明:以下内容属本人学习经验总结,乐于分享,致力开源,欢迎转载,转载请注明出处。
最近准备开始学习Spring,其中有一部分内容是面向切面编程——AOP。于是准备开始学习AspectJ,毕竟AspectJ在Java平台上还是挺NB的。想着用IDEA作为开发环境,没想到搞了一天了才把HelloWorld程序跑通。为了便于自己和后来者学习,我想把自己的踩坑经历记录下来。
安装IDEA
要在IDEA的平台上开发总得有IDEA这个软件吧。开发AspectJ需要完整版的IDEA,社区版的是不支持的,所以还没有下载安装的小伙伴们赶紧到官网下载安装吧。IDEA官网链接
完整版的IDEA安装需要激活,否则不能使用,激活我就不多说了。相信机智的你一定会找到各种方法实现~~~
安装过程:
- 在Windows平台上无非就是next next一步一步就可以安装成功;
- 在Linux平台上不用安装可以直接解压后进入解压目录/bin/下使用命令./idea.sh即可启动,启动完成后可以通过Tools->Create Desktop Entry…生成启动器图标,这样可以把启动器图标放到启动器,方便启动不用每次都从shell启动
安装AspectJ
- 下载AspectJ:可以从Eclipse的官网下载到AspectJ的.jar文件和源代码文件。AspectJ官网地址
下载后得到的是一个打包好的.jar文件,不能直接通过解压的方式安装,需要用如下命令安装
java -jar aspectj-1.1.0.jar
附官网给出的安装建议:
Installation
The .jar files should not be unzipped as they are self-extracting Java-based GUI installers. On many systems they can be run directly by selecting “Open this file from its current location” or by double-clicking the downloaded file. If you download the .jar files do not unzip them; instead invoke the GUI installer with the java -jar command on the corresponding file e.g.: java -jar aspectj-1.1.0.jar安装之后需要再添加如下两个环境变量
- 把/lib/aspectjrt.jar 添加到CLASSPATH环境变量
- 把/bin添加到PATH环境变量
Linux用户可以在~/.bashrc文件下添加以下代码:
export PATH=$PATH:/home/hylin/devTool/aspectj1.8/bin
export CLASSPATH=/home/hylin/devTool/aspectj1.8/lib/aspectjrt.jar:$CLASSPATH:
验证安装是否成功请用一下命令:
如果出现一下结果则说明安装成功
配置IDEA
根据IDEA官网的步骤是要做以下几步的步骤的,不过根据本人的经验(因为我就是根据官网的步骤去做,完了之后发现起始很多步骤并不用处理大家姑且看下吧)
Enabling AspectJ Support Plugins
官网步骤
简单步骤:- 通过快捷键Ctrl+Alt+S打开设置面板;
- 在设置面板找到Plugins选项,查看 AspectJ Support 和Spring AOP/@AspectJ 两个插件是不是勾选上了;
- 如果上述两个插件没有勾选,请动手勾选并点击ok退出。
Creating a Library for aspectjrt.jar
官网具体步骤
简单的说就是创建一个包含aspectjrt.jar这个jar包的library文件同时把这个library添加到modules依赖中。
简单步骤:- 通过快捷键Ctrl+Shift+Alt+S打开项目框架对话框;
- 根据自己的需要是创建项目级别的library还是全局library可以分别选择Libraries或者Global Libraries选项卡;
- 点击“+”选择Java选项;
- 在打开的对话框中找到并选择aspectjrt.jar文件,(路径为:AspectJ install path/lib)
- 在开发工程时要在指定的Modules对话框中,选中刚刚创建的library并点击ok,这样我们就把依赖关系添加完成了
- Create aspect files and develop the code
官网具体步骤
做这一步前请确保第一第二步已经正确完成,否则可能不成功~~
简单步骤:
- 在工程选项卡中创建Aspect文件:在想要创建Aspect文件的包名上右键选择New->Aspect->输入Aspect文件名->回车确认会自动生成Aspect文件
- 完成Aspect文件:
public aspect AuthTest{
before() : execution(* com.service.*.*(..))
{
System.out.println("执行模拟权限检查");
}
}
Note:IntelliJ IDEA支持两种文件格式:.aj或者.java
4. Configure the compiler settings
要使用AspectJ的编译器就需要修改一下IntelliJ IDEA的默认编译器(IntelliJ IDEA默认使用javac来编译)而AspectJ是ajc在AspectJ installation directory\lib目录下的aspectjtools.jar文件中
官网关于设置编译器的介绍
简单步骤:
File -> Settings…->Build,Execution,Deployment->Compiler->Java Compiler->在右侧的Use compailer 选项中选择Ajc
到此为止配置全部完成可以试一下上代码了~~
验证代码
- 新建普通Java工程:在IntelliJ IDEA中新建工程。
- 添加依赖:通过快捷键Ctrl+Shift+Alt+S打开项目框架对话框,在Module选项卡中选中当前的Module,在Dependencies选项卡中点击右侧的“+”号选择Library并把之前新建的Library文件添加进来;添加结果如下:
完成普通Java类的业务代码
Hello.java public class Hello { public void foo(){ System.out.println("执行Hello中的foo()方法"); } public void addUser(String name, String pass){ System.out.println("执行Hello类中的addUser()方法用户名:" + name); } } World.java public class World { public void bar(){ System.out.println("执行了World类中的bar()方法"); } } Test.java public class Test { public static void main(String[] args) { Hello hello = new Hello(); hello.foo(); hello.addUser("Tony","123456"); World world = new World(); world.bar(); } }
- 添加Aspect文件:按照前面设置的步骤来添加。
- 测试结果
没有添加 Aspect之前:
添加了Aspect之后:
到此搭建环境完成,现在看起来不算特别难,但是却踩了很多坑,希望我记下的经验可以帮助更多人少踩坑吧。另:本人写博客的经验不是特别多,如果有错漏的地方,望热心网友加以指出,谢谢。