`
toxy
  • 浏览: 71366 次
  • 性别: Icon_minigender_1
  • 来自: 云南.昆明
社区版块
存档分类
最新评论

Spring AOP之旅(二)

阅读更多
   当开发企业级应用的时候,你通常会想要从几个切面来参考模块化的应用和特定操作的集合。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 in Action 中文版 第2版 第二部分

    第1章 开始spring之旅 第2章 基本bean装配 第3章 高级bean装配 第4章 通知bean 第二部分 企业spring 第5章 使用数据库 第6章 事务管理 第7章 保护spring 第8章 spring和基于pojo的远程服务 第9章 在spring中...

    Spring in Action(第二版 中文高清版).part2

    第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 in Action(第二版 中文高清版).part1

    第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 in action英文版

     第1章 开始Spring之旅  1.1 为什么使用Spring  1.1.1 J2EE开发者的一天  1.1.2 Spring的承诺  1.2 Spring是什么  1.3 开始Spring之旅  1.4 理解反向控制  1.4.1 依赖注入  1.4.2 IoC应用...

    Spring in Action(第2版)中文版

    第1章开始spring之旅 1.1spring是什么 1.2开始spring之旅 1.3理解依赖注入 1.3.1依赖注入 1.3.2di应用 1.3.3企业级应用中的依赖注入 1.4应用aop 1.4.1aop介绍 1.4.2aop使用 1.5小结 第2章基本bean装配 ...

    Spring in Action 中文版 第2版 第一部分

    第1章 开始spring之旅 第2章 基本bean装配 第3章 高级bean装配 第4章 通知bean 第二部分 企业spring 第5章 使用数据库 第6章 事务管理 第7章 保护spring 第8章 spring和基于pojo的远程服务 第9章 在spring中...

    spring的ppt

    开始spring之旅;装配bean;创建切面;使用Aspectj进行AOP开发;使用pojo+xml进行AOP开发;征服数据库-jdbc;征服数据库-集成hibernate;事务管理;事务管理-spring2.5配置方式;事务管理-注解驱动事务等等。

    xmljava系统源码-SpringInAction4:《SpringInAction4th》学习笔记

    Spring之旅 依赖注入 AOP bean的初始化过程 spring容器 2. 装配Bean “initialization on demand holder”创建单例模式的理解,参考 Spring中单例的概念限于Spring上下文中,遵守约定 内部bean适用于setter注入和构造...

    利用Java的反射与代理实现IOC模式

    利用Java的反射与代理实现IOC模式 在Java中,其反射和动态代理机制极其强大,我们可以通过其反 射机制在运行时获取信息。而代理是一种基本的设计模式,它是一种为了提供额外的或不同...下 面,让我们开始IOC之旅吧!

    asp.net知识库

    ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序主题的切换 2.0正式版中...

Global site tag (gtag.js) - Google Analytics