AspectJ是AOP的一种实现技术,IntelliJ IDEA是一种集成开发工具。
在用IntelliJ IDEA编写AspectJ代码之前,需要在这台机器上安装AspectJ。具体安装步骤请参考边肖其他文章。
AspectJ的功能类似于拦截器,是一种切割技术。我们可以用AspectJ切入所有符合切点规则的方法,在方法执行前后增加一些通用的处理。让我们跟着边肖学。
智能理念
操作方法 01首先,我们打开IntelliJ IDEA开发工具,并在菜单栏中单击File-->设置- gt;Plungins,进入插件管理页面。
接下来,我们在右边的搜索框中输入Aspect query。当下图输入Asp时,结果会很模糊。我们可以只勾选AspectJ支持和Spring AOP/@AspectJ后面的框。
接下来,我们按住Ctrl+Shift+Alt+S,或者点击下图所示的图标进入项目结构页面,点击项目设置下的库,然后点击“+ quot;最后,选择Java,并在下一个弹出页面中选择jar包aspectjrt.jar。
接下来,返回到项目结构下的库设置,选择需要应用AspectJ的项目,然后单击“OK”按钮。
接下来,让我们进入真正的部分。首先,我们创建一个方面部分,这类似于创建一个类。
单击IntelliJ IDEA菜单中的“新建”来创建一个新的方面。
让我们将这个部分命名为MyaspectJ。注意下面的种类类别是Aspect,这里生成的AspectJ文件是。aj后缀,不是。类别后缀。希望你能注意这一点。
生成的aspectJ文件有。aj后缀,所以原来的编译工具javac不能用了,需要修改编译工具。
单击文件- gt;在菜单栏上。设置- gt;用构建、执行、部署的结构搜索编译->:编译器->;Java编译器.
我们将右边的Use编译器改为Ajc,在Ajc编译器的路径中选择安装目录下的aspectjtools.jar。
上面的编译工具也设置好了,我们开始写代码。
首先我们写一个介绍性的HelloWorld类,它有一个需要AspectJ section拦截的方法sayHello(),还有一个执行程序的main方法。
然后我们将改进上面创建的MyaspectJ,并创建pointcut切入点。注意,这种写法是AspectJ特有的语法。
切入点表示定义了一个切入点,logPointCut()是切入点的名字,call()需要被拦截。*标识返回值是任意类型,然后是类名。方法名(),..指示任何类型的参数。
我们定义了before()和after(),用于在其他拦截方法之前和之后执行。
最后,在HelloWorld类中执行main方法启动程序。查看执行结果,我们可以看到拦截是在sayHello()方法执行前后进行的。
带有的文件。aj后缀必须使用Ajc编译器,但是javac不能编译。