栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java aspectj execution 表达式的书写及其含义

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java aspectj execution 表达式的书写及其含义

package com.zhangsong1.s01;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

import java.util.Arrays;

//切面类
@Aspect//交给AspectJ的框架去识别切面类
@Component//创建对象
public class MyAspect {
//        所有切面的功能都是由切面的方法来实现
//          可以将各种切面都在此类进行开发
//    前置通知的切面方法的规范
//    访问权限是public
//    返回值是void
//    方法名称自定义
//    方法没有参数如果有只能是JoinPoint类型
//      必须使用@Before注解来声明切入的时机和切入点
//    参数 value 指定切入点表达式
//    业务犯法    public String dosome(String name, int age)

//    @Before(value = "execution(public String com.zhangsong1.s01.SomeServiceImpl.dosome(String,int))")
//    public void myBefore()
//    {
//        System.out.println("切面中的前置通知功能实现");
//    }
//    这个代表任意返回值这个包下的任意方法任意参数都可以切入
//@Before(value = "execution(public * com.zhangsong1.s01.SomeServiceImpl.*(..))")
//public void myBefore()
//{
//    System.out.println("切面中的前置通知功能实现");
//}
//    s01包下的任意类任意方法都可以切入
@Before(value = "execution(* com.zhangsong1.s01.*.*(..))")
public void myBefore(JoinPoint jp)
{
    System.out.println("切面中的前置通知功能实现");
    System.out.println("目标方法的签名"+jp.getSignature()+",目标方法的参数"+ Arrays.toString(jp.getArgs()));

}
   //   s01包及其任意子路径下的包和类中的任意方法和任意参数
//@Before(value = "execution(* com.zhangsong1.s01..*(..))")
//public void myBefore()
//{
//    System.out.println("切面中的前置通知功能实现");
//}
//任意的返回值类型任意包下的任意类中的任意方法
//@Before(value = "execution(* *(..))")
//public void myBefore()
//{
//    System.out.println("切面中的前置通知功能实现");
//}


}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874784.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号