AspectJ的简单使用

aspectj是一款优秀的面向切面的编程框架,下面就简单介绍一下入门教程吧:

1、官网下载AspectJ的jar包,我这里下的是最新版本1.8.7的。

2、因为AspectJ.jar 是一个可执行的jar文件,需要运行安装
   进入jar所在目录,输入命令 java -jar ***.jar

3、进入安装:

4、选择next,会有如下提示,默认选择电脑所安装的jre:

5、选择next,然后选择安装的目录,自己得记住该目录,到后面有用:



6、安装完成后,有提示将lib中aspectjrt.jar添加进入classpath;

     进入安装的目录,里面有将要用的jar包库lib文件夹和包含可运行文件的bin文件夹:

     添加aspectjrt.jar添加进入classpath:

7、进行aspectj的简单测试:


(1)编写测试所需要的类:A 、B 和主类Main:

 1 public class A
 2 {
 3     public void hello(){
 4         System.out.println("测试第一个实例第一个方法");
 5     }
 6 
 7     public void Hi(){
 8         System.out.println("测试第一个实例第二个方法");
 9     }
10     
11 }
1 public class B
2 {
3     public void greet(){
4       System.out.println("测试的第二个类第一个方法");
5     }
6 }
 1 public class  Main
 2 {
 3     public static void main(String[] args)
 4     {
 5         A a = new A();
 6         B b = new B();
 7 
 8         a.hello();
 9         a.Hi();
10 
11         b.greet();
12     }
13 }

 查看编译执行的效果:

 


(2)编写要添加进入目的函数的aspect:

第一个:

1 public aspect AuthAspect  
2 {
3     before():execution(void *.*()){
4 
5         System.out.println("模拟记录日志");
6     }
7 }

用bin文件夹中的ajc编译AuthAspect,-d . *.java编译当前目录所有java文件把编译后的文件放在当前目录


第二个:

 1 public aspect TransAspect  
 2 {
 3     void around():execution(void *.*()){
 4 
 5         System.out.println("模拟事物开始");
 6 
 7         proceed();//回调函数
 8 
 9         System.out.println("模拟事物结束");
10     }
11 }


第三个:

1 public aspect LogAspect  
2 {
3     after():execution(void *.*()){
4 
5         System.out.println("******模拟******");
6     }
7 }


原文地址:https://www.cnblogs.com/chentao-cus/p/4850360.html