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

news/2024/10/18 14:23:37/

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安装测试通过

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


http://www.ppmy.cn/news/576147.html

相关文章

第三方库介绍——libpng

文章目录 概述库版本的选择与下载安装zlib和libpng交叉编译交叉编译zlib库交叉编译libpng库 libpng的使用 概述 libpng是一款C语言编写的比较底层的读写PNG文件的跨平台的库。由于依赖于zlib库,所以在安装libpng时往往还需要安装zlib库。 库版本的选择与下载 zli…

java-查询个人信息

个员工都会有自己的档案,主管可以查看在职员工的档案。使用 Java 创建一个员工实体类,然后通过构造方法创建一个名为“王洁”的员工,最后打印出员工档案信息。示例步骤如下。 public class Person {private String name; // 姓名private …

9.个人信息查询接口

1.在UserMapper.xml下添加 <select id"findByUserId" resultType"User">select *from user where id#{user_id}</select>2.在UserMapper.java下添加 User findByUserId(Param("user_id") Integer userId);3.在UserService.java下添…

个人信息管理系统

1.分类 bean&#xff1a;负责数据处理和存储 ​ Customer controller&#xff1a;负责控制 ​ CustomerList util&#xff1a;工具包 ​ CMUtility view&#xff1a;可视化 ​ CustomerView 2.每个代码如下 Customer package bean;/*** 负责数据处理、存储* create:…

个人信息与个人敏感信息

参考《信息安全技术 个人信息安全规范》&#xff08;GB/T 35273-2020&#xff09; 1、个人信息 是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映自然人活动情况的各种信息&#xff0c;如姓名、出生日期、身份证件号码、个人生物识别信息、…

查询用户信息

1、查询一般都是根据主键的id进行查询&#xff0c;根据前端的要求&#xff0c;探讨前端需要在页面上面展现的数据&#xff0c;就是我们查询后需要返回的数据&#xff0c;放在vo里面进行统一的封装&#xff0c;参数就是我们的主键id // 查询账户信息 1:ApiOperation(value &qu…

个人信息法规

个人信息 关键事件 《未成年人网络保护条例&#xff08;送审稿&#xff09;》向社会公开征求意见 2017年1月6日&#xff0c;国务院法制办公布《未成年人网络保护条例(送审稿)》及其说明&#xff0c;并向社会各界征求意见。送审稿针对网络信息内容建设、未成年人网络权益保障…