当开发企业级应用的时候,你通常会想要从几个切面来参考模块化的应用和特定操作的集合。Spring AOP 用户可能会经常使用 execution pointcut designator。执行表达式的格式如下:
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)
其语义解释如下:
(1)除了返回类型模式(上面代码片断中的ret-type-pattern)、名字模式和参数模式以外,所有的部分都是可选的。 返回类型模式决定了方法的返回类型必须依次匹配一个连接点。
(2)你会使用的最频繁的返回类型模式是 *,它代表了匹配任意的返回类型。
(3) 一个全称限定的类型名将只会匹配返回给定类型的方法。名字模式匹配的是方法名。 你可以使用 * 通配符作为所有或者部分命名模式。
(3) 参数模式稍微有点复杂:
()匹配了一个不接受任何参数的方法;
(..)匹配了一个接受任意数量参数的方法(零或者更多);
模式 (*)匹配了一个接受一个任何类型的参数的方法;
模式 (*,String) 匹配了一个接受两个参数的方法,第一个可以是任意类型,第
二个则必须是String类型。
下面给出一些常见切入点表达式的例子:
(1)任意公共方法的执行:
execution(public * *(..))
(2)任何一个以“set”开始的方法的执行:
execution(* set*(..))
(3)AccountService 接口的任意方法的执行:
execution(* com.xyz.service.AccountService.*(..))
(4)定义在service包里的任意方法的执行:
execution(* com.xyz.service..*.*(..))
(5)在service包里的任意连接点(在Spring AOP中只是方法执行):
within(com.xyz.service.*)
(6)在service包或者子包里的任意连接点(在Spring AOP中只是方法执行):
within(com.xyz.service..*)
(7)实现了 AccountService 接口的代理对象的任意连接点(在Spring AOP中只是
方法执行):
this(com.xyz.service.AccountService)
(8)实现了 AccountService 接口的目标对象的任意连接点(在Spring AOP中只是
方法执行):
target(com.xyz.service.AccountService)
(9)任何一个只接受一个参数,且在运行时传入的参数实现了 Serializable 接口的
连接点 (在Spring AOP中只是方法执行):
args(java.io.Serializable)
(10)有一个 @Transactional 注解的目标对象中的任意连接点(在Spring AOP中
只是方法执行):
@target(org.springframework.transaction.annotation.Transactional)
更多的内容可以参考Spring2.0文档:
http://www.redsaga.com/spring_ref/2.0/html/aop.html#d0e7684
分享到:
相关推荐
### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)...对于希望深入了解Spring AOP原理与实践的读者来说,掌握以上概念将是开启面向方面编程之旅的第一步。
本项目资料旨在帮助开发者全面、深入地掌握Spring AOP的核心概念与实践技巧,为2024年春季的学习之旅提供坚实的理论基础和技术支持。 一、Spring AOP概述 Spring AOP是Spring框架中的一个关键特性,它通过将关注点...
Spring框架是Java开发中最广泛应用的轻量级框架之一,它以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)能力而闻名。当你下载并研究Spring框架的源码时...
第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP使用 1.5 小结 第2章 ...
《Spring框架核心模块深度解析》 Spring框架是Java开发领域中的一个重要组成部分,它以其强大的功能和灵活的设计赢得了广泛的赞誉。...无论是新手还是经验丰富的开发者,理解Spring的源码都将是一次宝贵的进阶之旅。
《Spring in Action》是Spring框架领域的一本经典著作,它以深入浅出的方式介绍了Spring框架的核心概念和技术。这本书的中文版对于中国的Java开发者来说是一份非常宝贵的...这是一次对Spring框架全面而深入的学习之旅。
Spring框架是Java开发中最常用的轻量级开源框架之一,它以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)能力,...请打开文档,开始你的Spring学习之旅吧!
**Spring 框架概述** Spring 是一个开源的 Java 应用框架,它以其轻量级、模块化和面向切...希望这篇入门笔记能为你开启 Spring 的探索之旅,欢迎在学习过程中发现错误或有任何疑问时,通过博主的博客进行交流和指正。
总的来说,Spring 3.0.2源码的学习是一次宝贵的编程之旅,它揭示了这个强大框架背后的设计思想和实现细节,对于提升Java企业级开发能力具有重要意义。通过阅读和理解源码,开发者能够更好地利用Spring解决实际问题,...
《Spring入门经典》是一本专为初学者和有一定基础的开发者设计的教程,它通过附带的源代码帮助读者深入理解并快速掌握Spring框架。Spring是Java开发领域中最为广泛应用的轻...所以,拿起这本书,开启你的Spring之旅吧!
Spring框架是中国Java开发领域中最广泛使用的轻量级框架之一,它以其依赖注入...这份"spring入门介绍PPT"将是你深入理解Spring的宝贵资源,通过它,你可以逐步掌握Spring的核心理念和技术,开启你的Spring开发之旅。
Spring框架是Java开发中不可或缺的一部分,它以其模块化、易用性和灵活性著称。Spring 4.3.18是该框架的一个稳定版本,提供了...这个压缩包为开发者提供了一个便捷的起点,无需繁琐的编译步骤,即可直接开始学习之旅。
《Spring4 中文版》是针对Java开发人员的一份重要参考资料,它详尽地介绍了Spring框架的第四代版本。Spring框架作为Java企业级应用开发...解压即用的特点,意味着你无需额外的步骤,即可迅速开始你的Spring4学习之旅。
你可以通过导入这些jar文件到你的项目中,开始你的Spring之旅,无论是构建简单的控制层,还是设计复杂的分布式系统。记得在使用时,根据实际需求选择相应的模块,避免引入不必要的依赖。同时,配合官方文档和示例...
第1章 开始spring之旅 第2章 基本bean装配 第3章 高级bean装配 第4章 通知bean 第二部分 企业spring 第5章 使用数据库 第6章 事务管理 第7章 保护spring 第8章 spring和基于pojo的远程服务 第9章 在spring中...
第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP使用 1.5 小结 第2章 ...
总的来说,“模拟Spring”不仅是一次学习之旅,也是一次提升开发技能的过程。通过对源码的阅读和实践,我们可以深入理解Spring的内部工作原理,进一步提升我们的编程水平和问题解决能力。无论你是Spring的新手还是...
Spring框架是Java开发中最常用的轻量级开源框架之一,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented ...通过学习这个示例,你可以对Spring框架有一个基本的理解,并能开始自己的Spring开发之旅。
Spring框架是Java开发领域中的一个核心组件,由Rod Johnson创建并引领了企业级应用的开发模式...通过下载的"spring-framework-4.0.4.RELEASE-dist"压缩包,开发者可以获得所有必要的库和文档,开始他们的Spring之旅。
总的来说,Spring 和 Spring MVC 源码的学习是一场深入Java企业级开发的探索之旅,它将帮助你提升编程技巧,理解设计模式,甚至启发你创新解决问题的方法。无论是对于框架的调试、扩展,还是自定义功能,理解源码都...