zoukankan      html  css  js  c++  java
  • 【学习笔记】AspectJ笔记

    AspectJ的概念

    1. 是一种静态编译期增强性AOP的实现
    2. 在编译过程中修改代码加入相关逻辑,无需程序员动手

    AspectJ具体用法

    1. 下载安装AspectJ,启动jar文件,安装到JDK目录,添加path和classpath
    2. 切点与切面代码
    • 切点前
    package test.aspect;
    //模拟权限检查
    public aspect AuthAspect {
    
    	before() : execution(* test.service.*.*(..)){
    		System.out.println("模拟权限检查……");
    	}
    }
    
    • 切点后
    package test.aspect;
    //模拟日志输出
    public aspect LogAspect{
        //定义切点
    	pointcut logPointCut()
    		: execution(* test.service.*.*(..));
    	after(): logPointCut(){
    		System.out.println("模拟日志输出……");
    	}
    }
    
    • 环绕
    package test.aspect;
    public aspect TxAspect{
    	
    	//测试环绕事务
    	Object around():call(* test.service.*.*(..)){
    	    //代码前执行
    		System.out.println("模拟开启事务……");
    	    //放行代码
    		Object rvt = proceed();
    		//代码后执行
    		System.out.println("模拟关闭事务……");
    		return rvt;
    	}
    	
    }
    
    1. 切点定义:pointcut 切点名称():execution(* 包名.*.*(..));

    注意:

    1. 如果没有事先声明切点,此时可以直接使用execution表达式作为切点使用
    2. execution关键词可使用call代替
    3. 声明切点后可以直接使用切点代替execution和call

    本文为学习笔记,如需转载请注明出处

  • 相关阅读:
    Mysql如何修改unique key
    centos 编译 安装 protobuf
    EasyNetQ简单使用
    微信发送模板消息
    Python删除开头空格
    代码积累-Common
    sql With(NoLock),With(ReadPast)
    webform 使用log4net配置
    log4net.dll添加报错
    js-小数计算问题
  • 原文地址:https://www.cnblogs.com/hellxz/p/9629086.html
Copyright © 2011-2022 走看看