1. 确定所使用的Java版本和AspectJ的对应关系
2. 下载AspectJ包
3. 安装AspectJ
4. 添加AspectJ对应的环境变量
5. AspectJ测试-简单终端测试
6. AspectJ测试-通过IDEA敲代码测试
---------------------------------------详细教程---------------------------------------
1. 确定所使用的Java版本和AspectJ的对应关系
AspectJ版本和Java版本的兼容性对应图(Aspects and Java version cpmpatibility)
上图来源于AspectJ和Java版本的兼容性列表(来源于aspect的官方github)
2. 下载AspectJ包
!!!自己找到所需要版本的AspectJ并下载即可。(本人使用的是Java17版本,所以是对应安装AspectJ 1.9.8)
下载链接1: AspectJ下载链接【来源于Eclipse】
下载链接2: AspectJ下载链接【来源于Github】
3. 安装AspectJ
3.1 直接打开AspectJ的下载路径文件夹,双击进行安装。不出意外的话,mac系统应该会提示macOS无法验证此App是否包含恶意软件;
mac软件安装安全提示
3.2 这时候打开 系统设置-隐私与安全性,选择安全性下的仍要打开进行安装;
系统设置-隐私与安全性-安全性-点击仍要打开
3.3 经过3.2步骤后,会自动弹出AspectJ的安装窗口,以下开始正式安装:
AspectJ安装界面1-介绍信息-点Next
AspectJ安装界面2-Java安装路径确认-没问题点Next(AspectJ会自动搜索Java安装路径,没找对的话可以自己修改)
AspectJ安装界面3-AspectJ安装路径确认-没问题点Install
AspectJ安装界面4-AspectJ安装完成
AspectJ安装界面5-AspectJ帮助信息提示
其中,第1条提示的粗体黑色路径所指示的文件一般是用于添加到自己的java项目中;
第2条提示的粗体黑色路径是用于该路径添加到自己的环境变量中(如~/.bash_profile);
最下面那条黑色粗体路径是AspectJ的README,有需要可以自己看看
4. 添加AspectJ对应的环境变量
4.1 打开mac的terminal终端,输入
sudo vi ~/.bash_profile
4.2 将光标用“键盘下键”移动到文件最下面一行,然后点击“键盘i键”进行输入,参考自己AspectJ的安装路径bin路径,本人路径为:
export PATH=$PATH:/Users/xxxxx/aspectj1.9/bin
4.3 点击“键盘esc键”退出vi编辑模式,并输入:wq保存文件并退出vi;
4.4 在终端输入以下指令,以更新环境变量配置。
source ~/.bash_profile
5. AspectJ测试-简单终端测试
5.1 简单终端(命令行)测试安装是否成功,没有提示指令无法识别即安装AspectJ成功;
ajc
ajc指令测试-输入ajc指令后出现如图所示即AspectJ安装成功
6. AspectJ测试-通过IDEA敲代码测试
6.1 在IDEA中创建一个Java的Maven工程(此时笔者直接创建JavaWeb的Spring Web项目模版进行测试)依次在IDEA中点击File-New-Project;
Java的Maven创建过程1-输入项目相关信息
Java的Maven创建过程2-勾选Spring web支持
6.2 在IDEA设置中Plugins添加AspectJ扩展,依次打开IntelliJ IDEA-Settings-Plugins,在搜索框输入aspect并进行搜索,点击安装AspectJ扩展(即下图红框那个扩展)。
在IDEA中添加对应Plugins-搜索AspectJ并进行下载安装
6.3 在项目中分别创建如下图所示的MyAspect.java和MyService.java文件,修改A10Application.java文件,并创建lib文件夹;
MyAspect.java文件如下:
// MyAspect.java
package com.itheima.aop;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@Aspect // 注意此切面并未被Spring管理
public class MyAspect {
@Before("execution(* com.itheima.service.MyService.foo())")
public void before(){
System.out.println("before()");
}
}
MyService.java文件如下:
// MyService.java
package com.itheima.service;
import org.springframework.stereotype.Service;
@Service
public class MyService {
public void foo(){
System.out.println("foo()");
}
}
A10Application.java文件如下:
// A10Application.java
package com.itheima;
import com.itheima.service.MyService;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
/*
使用aspectj进行增强
*/
@SpringBootApplication
public class A10Application {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(A10Application1.class, args);
MyService service = context.getBean(MyService.class);
System.out.println("service class: " + service.getClass());;
service.foo();
context.close();
}
}
项目结构如下:
项目结构-红圈内是需要创建的代码或文件夹
6.4 将自己项目中aspectjrt.jar添加到项目jar包。在AspectJ安装目录下寻找aspectjrt.jar文件(其参考路径为:你的AspectJ安装路径/lib/aspectjet.jar,笔者aspectjrt.jar文件路径为/Users/xxxxx/aspectj1.9/lib),并将其拷贝到自己项目的lib文件夹
aspectjrt.jar文件拷贝后的项目结构
6.5 设置ajc编译器
在IDEA中设置ajc编译器-红框处要选择Ajc编译器,蓝框处要修改为AspectJ安装路径下的lib文件夹内的aspecttools.jar文件的绝对路径(作为参考,笔者aspecttools.jar文件路径参考为:/User/xxxxx/aspect1.9/lib/aspecttools.jar)
6.6 运行项目的主Java文件,出现下图所示结果即为AspectJ安装测试通过
程序运行结果-出现红框所示,则表明测试成功
推荐文章
发表评论