Spring中execution语法
语法格式
execution(修饰符 返回类型 切入点类 切入点方法(参数) 异常抛出)
修饰符: 可选,支持通配符,(public/private/protected)
返回类型: 必填,支持通配符,可以使用 * 来匹配所有的返回值类型
切入点类: 可选,支持通配符,指定切入点类
切入点方法: 必填,支持通配符,指定要匹配的方法名,可以使用"*"通配符来匹配所有方法
参数: 若无可不填,指定方法声明中的形参列表,支持两个通配符,即*和…
其中*代表一个任意类型的参数,而…代表零个或多个任意类型的参数
() 匹配一个不接受任何参数的方法
(…) 匹配一个接受任意数量参数的方法,可以是零个或多个
(*) 匹配一个接受一个任何类型的参数的方法,只能是一个
(*,String) 匹配一个接受两个参数的方法,其中第一个参数是任意类型,第二个参数必须是String类型
异常抛出: 可选,支持通配符,指定方法声明抛出的异常
常用实例
<!-- 【1、拦截所有public方法】 -->
<aop:pointcut expression="execution(public * *(..))" id="pt"/> <!-- 【2、拦截所有save开头的方法】 -->
<aop:pointcut expression="execution(* save*(..))" id="pt"/> <!-- 【3、拦截指定类的指定方法, 拦截时候一定要定位到方法】 -->
<aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..))" id="pt"/><!-- 【4、拦截指定类的所有方法】 -->
<aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.*(..))" id="pt"/><!-- 【5、拦截指定包,以及其自包下所有类的所有方法】 -->
<aop:pointcut expression="execution(* com..*.*(..))" id="pt"/><!-- 【6、多条件】 -->
<!-- 或:|| or -->
<aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..)) || execution(* com.shore.dao.impl.MessageDao.save(..))" id="pt" /><aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..)) or execution(* com.shore.dao.impl.MessageDao.save(..))" id="pt" /><!-- 且:&& and --> <!-- 语法虽然没错,但,没意义 -->
<aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..)) && execution(* com.shore.dao.impl.MessageDao.save(..))" id="pt" /><aop:pointcut expression="execution(* com.shore.dao.impl.UserDao.save(..)) and execution(* com.shore.dao.impl.MessageDao.save(..))" id="pt" /><!-- 【7、取非值:not ! 不拦截指定的规则,拦截除此之外的所有类的方法】 -->
<aop:pointcut expression="!execution(* com.shore.dao.impl.UserDao.save(..))" id="pt"/> <!-- 注意not前必须有空格 --><aop:pointcut expression=" not execution(* com.shore.dao.impl.UserDao.save(..))" id="pt"/>
Spring中execution语法相关推荐
- Spring中的AOP(二)——AOP基本概念和Spring对AOP的支持
AOP的基本概念 AOP从运行的角度考虑程序的流程,提取业务处理过程的切面.AOP面向的是程序运行中的各个步骤,希望以更好的方式来组合业务逻辑的各个步骤.AOP框架并不与特定的代码耦合,AOP框架能处 ...
- spring中AOP(面向切面编程)
spring中AOP(面向切面编程) 面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是spring框架中的一个重要内容 ...
- Spring中的5种Aop常见应用方式(扫描注解方式)
转载于:https://zhuanlan.zhihu.com/p/103236714 提到Aop,不得不提的那就是动态代理:关于动态代理,可以参考前面写过的文章 加耀:浅谈动态代理zhuanlan. ...
- [5] Spring中的AOP操作(使用xml 配置文件的方式)
AOP (Aspect Oriented Programing) 面向切面编程 AOP 采取横向抽取机制,取代了传统的纵向继承体系重复性代码(性能监视.事务管理.安全检查.缓存) Spring AOP ...
- java学习day40(Spring)spring中的aop和基于XML以及注解的AOP配置
第1章 AOP 的相关概念[理解] 1.1AOP 概述 1.1.1 什么是 AOP AOP :全称是 Aspect Oriented Programming 即:面向切面编程. 简单的说它就是把我们程 ...
- 【spring 5】AOP:spring中对于AOP的的实现
在前两篇博客中,介绍了AOP实现的基础:静态代理和动态代理,这篇博客介绍spring中AOP的实现. 一.采用Annotation方式 首先引入jar包:aspectjrt.jar && ...
- spring中这些能升华代码的技巧,可能会让你爱不释手
前言 最近越来越多的读者认可我的文章,还是件挺让人高兴的事情.有些读者私信我说希望后面多分享spring方面的文章,这样能够在实际工作中派上用场.正好我对spring源码有过一定的研究,并结合我这几年 ...
- (转)Spring中ThreadLocal的认识
我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度.这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突.我们使用模板类访问底层数据,根据持久 ...
- Spring5源码解析-Spring中的异步事件
上一篇 Spring框架中的事件和监听器并未对Spring框架中的异步事件涉及太多,所以本篇是对其一个补充. 同步事件有一个主要缺点:它们在所调用线程的本地执行(也就是将所调用线程看成主线程的话,就是 ...
最新文章
- RadGrid使用技巧:从RadGrid获取绑定的值
- mysql 释放错误连接_JSP连接MySQL后数据库链接释放的错误
- 使用NDK过程中出现“Unresolved inclusion jni.h”
- java 字节取位_java位 、字节 、字符的梳理
- idea包显示问题-层次显示设置-idea2020版
- PCA主成分分析 特征降维 opencv实现
- sql获取受影响行数、插入标识值
- Apache2.2与Tomcat7集成方案详解
- 计算机系统操作技师考试题,机关事业单位技术工人计算机操作技师考试题库
- git(16)---解决冲突
- 苹果应用商店新增对“非公开上市”应用程序的支持
- c语言编写一元二次方程
- 2021年十大 web hacking 技术汇总
- 实验报告四201521460014
- CentOS6.5 linux 逻辑卷管理 调整分区大小
- 自适应权重的交叉熵计算
- 富士通Fujitsu DPK210 打印机驱动
- oracle查看登录失败次数,Oracle取消用户连续登录失败次数限制
- 网络安全——kali_Linux基本命令大全
- Win11如何设置自动关机