1、去官方网站下载aspectj-1.8.0.jar
2、在jar包目录启动cmd,执行java -jar aspectj-1.8.0.jar,Next
3、检查JAVA_HOME路径是否正确,如果不正确,手动选择正确的JAVA_HOME,Next
4、选择安装路径,这个其实解压过程,后续可以将这个安装路径的包复制到其他地方运行,无需通过运行aspectj-1.8.0.jar往注册表中写入信息,Install,安装完毕
5、配置ASPECTJ_HOME环境变量,并添加到Path。将aspectjrt.jar添加进入classpath。环境配置完成,可以使用aspectj了。
6、简单的aspectj框架AOP应用。新建项目aspectjTest
7、编写相关代码Hello.java、World.java、AuthAspect.java、TransAspect.java、AfterAspect.java、AspectJTest.java
Hello.java
package com.lfy.bean; public class Hello{ // 定义一个简单方法,模拟应用中的业务逻辑方法 public void foo(){ System.out.println("执行Hello组件的foo()方法"); } //定义一个addUser()方法,模拟应用中添加用户的方法 public void addUser(String name,String pass){ System.out.println("执行Hello组件的addUser添加用户:"+name); } }
World.java
package com.lfy.bean; public class World{ //定义一个简单方法,模拟应用中的业务逻辑方法 public void bar(){ System.out.println("执行World组件的bar()方法"); } }
AuthAspect.java
package com.lfy.aspect; public aspect AuthAspect{ //指定在执行com.lfy.bean包中任意类的任意方法之前执行下面的代码块 //第一个*号表示返回值不限;第二个*号表示类名不限 //第三个*号表示方法名不限;圆括号中..代表任意个数、类型不限的形参 before():execution(* com.lfy.bean.*.*(..)){ System.out.println("模拟进行权限检查..."); } }
TransAspect.java
package com.lfy.aspect; public aspect TransAspect{ void around():execution(* com.lfy.bean.*.*(..)){ System.out.println("模拟事务的开始"); proceed();//回调函数 System.out.println("模拟事务的结束"); } }
AfterAspect.java
package com.lfy.aspect; public aspect AfterAspect{ after():execution(* com.lfy.bean.*.*(..)){ System.out.println("方法结束时执行"); System.out.println(""); } }
AspectJTest.java
package com.lfy.main; import com.lfy.bean.Hello; import com.lfy.bean.World; public class AspectJTest{ public static void main(String[] args){ Hello hello=new Hello(); hello.foo(); hello.addUser("孙悟空","7788"); World world=new World(); world.bar(); } }
8、编译运行,查看结果
进入src目录:执行 ajc -encoding utf-8 -sourceroots com,编译完成,没出现错误,执行 java com.lfy.main.AspectJTest 运行主类
spring-AOP面向切面编程之AspectJ框架简单应用(1)
原文:https://www.cnblogs.com/ZeroMZ/p/11304995.html