Windows下AspectJ的安装和环境变量的配置

Windows下AspectJ的安装和环境变量的配置,第1张

在开发中我们经常会遇到记录系统 *** 作日志、权限管理、事物管理等方面的需求,而这些功能尽量不要跟核心业务代码相耦合,因此出现了面向切面编程的技术AOP。AspectJ是AOP的一种技术,Spring AOP默认使用AspectJ来实现的,如果想要使用AspectJ特有的功能就需要安装AspectJ。本文主要介绍Windows环境下AspectJ的安装和使用,下面跟着我一起去学习吧。

工具/材料

Windows 10 *** 作系统

Windows下安装AspectJ01

首先我们在搜索引擎中搜“AspectJ官网",打开如上图所示的页面,我们在右侧选择Downloads下载AspectJ,并将下载后的文件放在磁盘某个位置,本教程选择放在D盘。

02

下载后的AspectJ文件需要执行安装 *** 作,我们使用快捷键Win+R进入命令行,然后切换到D盘的根路径,这里存放着AspectJ下载后的文件。我们使用java -jar命令运行aspectj-*.jar文件(具体的名字要根据你下载的版本而定)。

03

执行java -jar 命令后会d出安装提示,选择"Next"后会展示当前系统中安装JDK的位置,路径可以修改,这就告诉我们在安装AspectJ前需要安装Jdk。

04

然后会提示修改AspectJ的安装路径,我们选择常用的安装目录即可。接下来按照提示点击“Next",安装完成后点击Finish即可。

配置AspectJ的环境变量01

首先我们来看一下AspectJ的安装目录下有哪些文件,我们可以看到bin,lib,doc等文件夹,其中bin和lib文件夹下的文件是下面环境变量配置所需要的。

02

在桌面右键点击"此电脑"-->"属性"-->"高级系统设置"-->"环境变量",新建或者编辑CLASSPATH,变量值为AspectJ安装路径下aspectjrt.jar文件的路径。接下来编辑Path环境变量,添加的变量值为安装目录下bin文件所在的位置,如下图所示。

03

环境变量配置完成后还需要检验是否配置成功,我们使用Win+R命令,此时不用再切换到D盘,因为环境变量配置后我们可在任意位置执行AspectJ的命令,输入ajc命令,如果出现下图所示的页面,则环境变量配置成功。

特别提示

安装AspectJ前需要先安装JDK。

AspectJ是AOP的一种实现技术,IntelliJ IDEA是一款集成开发工具。在使用IntelliJ IDEA编写AspectJ代码之前需要本机先安装AspectJ,具体的安装步骤可以参考我的其他文章。AspectJ的功能类似于拦截器,这是一种切面技术,我们可以使用AspectJ切入满足切点规则的所有方法,并在方法的执行前后加一些通用的处理,下面跟着我一起去学习吧。

工具/材料

IntelliJ IDEA

首先我们打开IntelliJ IDEA开发工具,在菜单栏点击File-->Settings-->Plungins,进入到插件管理的页面。接下来我们在右侧的搜索框输入Aspect查询,下图在输入到Asp时便会模糊查询出结果,我们将AspectJ Support和Spring AOP/@AspectJ后面的方框勾选上即可。

接下来我们按住Ctrl+Shift+Alt+S,或者点击下图中所示的图标进入到Project Structure页面,点击Project Settings下方的Libraries,然后点击"+"号,最后选择Java,在接下来d出的页面中选择aspectjrt.jar这个jar包。

接下来再回到Project Structure下方的Libraries设置,选择需要应用AspectJ的工程,然后点击“OK”按钮即可。

接下来进入到真正使用的部分了,我们首先创建一个Aspect切面,类似于创建一个类。在IntelliJ IDEA的菜单中点击“New”,新建一个Aspect。我们给这个切面取个名字MyAspectJ,注意下方的kind类别是Aspect,这里生成的aspectJ文件是.aj后缀的,而不是.class后缀的,这一点希望大家注意。

生成的aspectJ文件是.aj后缀的,所以原来的编译工具javac便不能使用了,因此我们需要修改编译工具。菜单栏点击File-->Settings-->搜索Compile,结构为Build,Execution,Deployment-->Compiler-->Java Compiler。我们右侧将Use Compiler修改为Ajc,在Path to Ajc compiler中选择安装目录下的aspectjtools.jar。

以上编译工具也设置完了,我们开始编写代码了。首先我们写一个入门的HelloWorld类,该类中有一个需要被AspectJ切面拦截的方法sayHello(),还有一个main方法用于执行程序。

然后我们再完善上面创建的MyAspectJ,创建pointcut切点,注意该写法是aspectJ特有的语法。pointcut表示定义的是一个切点,logPointCut()是切点的名字,call()里面是需要拦截的,* 标识返回值是任意类型,然后是类名.方法名(),..表示任意类型的参数。我们定义before()和after()这两个前置和后置拦截,分别用于在别拦截方法的前后执行。

最后在HelloWorld类执行main方法启动程序,我们看一下执行的结果,可以看到在sayHello()方法的执行前后分别执行了拦截。

特别提示

.aj后缀的文件必须要使用Ajc的编译器,javac不可以编译。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6573731.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-25
下一篇 2023-03-25

发表评论

登录后才能评论

评论列表(0条)

保存