在Mac上安装Aspectj1.9.8(用于Java17)+IDEA

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版本的兼容性对应图(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-搜索Aspect并进行下载安装
在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安装测试通过

程序运行结果-出现红框所示,则表明测试成功

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值