首页 > 编程语言 > 详细

spring-AOP面向切面编程之AspectJ框架简单应用(1)

时间:2019-08-05 22:10:45      阅读:132      评论:0      收藏:0      [点我收藏+]

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!