任意公共方法的执行:

execution(public * *(..))

任何一个名字以 set 开始的方法的执行:

execution(* set*(..))

AccountService 接口定义的任意方法的执行:

execution(* com.xyz.service.AccountService.*(..))

在 service 包中定义的任意方法的执行:

execution(* com.xyz.service.*.*(..))

在 service 包或其子包中定义的任意方法的执行:

execution(* com.xyz.service..*.*(..))

在 service 包中的任意连接点(在 Spring AOP 中只是方法执行):

within(com.xyz.service.*)

在 service 包或其子包中的任意连接点(在 Spring AOP 中只是方法执行):

within(com.xyz.service..*)

实现 AccountService 接口的代理对象的任意连接点 (在 Spring AOP 中只是方法执行):

this(com.xyz.service.AccountService)

实现 AccountService 接口的目标对象的任意连接点 (在 Spring AOP 中只是方法执行):

target(com.xyz.service.AccountService)

任何一个只接受一个参数,并且运行时所传入的参数是 Serializable 接口的连接点(在 Spring AOP 中只是方法执行):

args(java.io.Serializable)

请注意在例子中给出的切入点不同于execution(* *(Java.io.Serializable)),args 版本只有在动态运行时候传入参数是 Serializable 时才匹配,而 execution 版本在方法签名中声明只有一个 Serializable 类型的参数时候匹配。

目标对象中有一个 @Transactional 注解的任意连接点 (在 Spring AOP 中只是方法执行):

@target(org.springframework.transaction.annotation.Transactional)

任何一个目标对象声明的类型有一个 @Transactional 注解的连接点 (在 Spring AOP 中只是方法执行):

@within(org.springframework.transaction.annotation.Transactional)

任何一个执行的方法有一个 @Transactional 注解的连接点 (在 Spring AOP 中只是方法执行):

@annotation(org.springframework.transaction.annotation.Transactional)

任何一个只接受一个参数,并且运行时所传入的参数类型具有 @Classified 注解的连接点(在 Spring AOP 中只是方法执行):

@args(com.xyz.security.Classified)

任何一个在名为 tradeService 的 Spring bean 之上的连接点 (在 Spring AOP 中只是方法执行):

bean(tradeService)

任何一个在名字匹配通配符表达式*Service的 Spring bean 之上的连接点 (在 Spring AOP 中只是方法执行):

bean(*Service)

其中,thistagartargs@target@with@annotation@args在绑定表单中更加常用。

转载声明:本文出自“熔岩”博客,Spring切入点表达式常用写法。

转载于:https://www.cnblogs.com/xh_chiang/p/6817773.html

Spring切点表达式常用写法相关推荐

  1. Spring切入点表达式常用写法

    Spring切入点表达式常用写法 自从使用AspectJ风格切面配置,使得Spring的切面配置大大简化,但是AspectJ是另外一个开源项目,其规则表达式的语法也稍稍有些怪异. 下面给出一些常见示例 ...

  2. spring aop切点表达式常见写法

  3. .NET笔记系列:LAMBDA表达式常用写法

    这里主要是将数据库中的常用操作用LAMBDA表达式重新表示了下,用法不多,但相对较常用,等有时间了还会扩展,并将查询语句及LINQ到时也一并重新整理下: 1.select语句:books.Select ...

  4. Spring之AOP的切点、通知、切点表达式以及知识要点

    1.2.1.需要编写的内容 编写核心业务代码(目标类的目标方法) 编写切面类,切面类中有通知(增强功能方法) 在配置文件中,配置织入关系,即将哪些通知与哪些连接点进行结合 1.2.2.AOP 技术实现 ...

  5. Spring学习之AOP的切点表达式详解

    1.背景知识 在Sping中使用AOP的主要工作是配置织入关系,使用<aop:config>标签代表这一段是织入关系的配置 首先,用<aop:aspect>标签声明一个切面,这 ...

  6. spring-aop常用切点表达式

    AOP是spring的最重要模块之一,关于AOP的原理,主要就是基于动态代理,可以查看官网Understanding AOP Proxies,本节内容不去深究AOP原理,仅仅列出在spring框架中编 ...

  7. Spring Aop 切点表达式

    在Spring AOP 中,通常需要借助AspectJ 的切点表达式语言来定义切点.重要的是Spring 中仅支持AspectJ切点指示器的一个子集. Spring 支持的AspectJ的切点指示器 ...

  8. 第15章-Spring AOP切点表达式(Pointcut)详解

    文章目录 一.概述 二.切点表达式配置 1. 内置配置 2. 注解配置 3. 公共配置 二.切点表达式类型 **`execution`** **`within`** **`this`** **`tar ...

  9. Spring AOP切点表达式详解

    1. 简介 面向对象编程,也称为OOP(即Object Oriented Programming)最大的优点在于能够将业务模块进行封装,从而达到功能复用的目的.通过面向对象编程,不同的模板可以相互组装 ...

最新文章

  1. [USACO08NOV]lites
  2. C语言的双向链表头插法和尾插法,指定节点删除
  3. 你应该知道的青否小程序第三方平台
  4. 数据中心的PUE 最低可至1.15,浸没式液冷技术是关键
  5. (转)电脑程序员才能看懂的笑话
  6. WebLogic下WAR方式部署获取文件路径问题
  7. [导入]javascript身份证号码验证函数支持带x
  8. mysql存储引擎的区别_Mysql的两种存储引擎以及区别
  9. C++STL笔记(四):vector详解
  10. 一步一步写算法(之挑选最大的n个数)
  11. Linux的目录ls命令
  12. C++/CLI的简单介绍。from维基百科们,http://zh.wikipedia.org/zh-cn/C%2B%2B/CLI
  13. latex 图片整行居中 /centering无效
  14. java 格雷码_在 Java 中使用递归的方式将二进制转换为等效的格雷码
  15. 《学习openCV》例程解析 ex_9_3(codeBook模型实现背景减除)
  16. 屏幕录制专家linux版,Linux平台好用的十款屏幕录制工具
  17. ESC云服务器搭建自己的图床
  18. Android Studio 中 为模拟器添加图片和图片路径(图文级教程)
  19. Verilog训练笔记(1)——非重叠序列检测
  20. java俄罗斯方块视频_[VIP视频]【A0233】java面对对象编程-俄罗斯方块视频教程 高清视频 百度云 百度网...

热门文章

  1. 安卓data./data没数据的时候
  2. php限定时间内同一ip只能访问一次
  3. 【转】JNI(Java Native Interface)的简介
  4. 挨踢人生路--记我的10年18家工作经历 - 第16家公司,英国公司――第一次当经理...
  5. 用frontpage制作网页,字体大小用PT做单位好还是用PX做单位好?
  6. mysql数据库设计实践_MYSQL教程分享20个数据库设计的最佳实践
  7. Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
  8. Go语言中奇怪的if语句
  9. 如何获得Java中泛型类的类型参数?
  10. 微服务架构可视化平台实践