`
desert3
  • 浏览: 2160472 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Spring 2.x AOP排除设置

阅读更多

排除设置

<aop:advisor pointcut="execution(* com.mycompany.project.service.*Service.*(..)) and !execution(* com.mycompany.project.service.SPECIALService.*(..)) " advice-ref="txAdvice" />

 

Spring AOP表达式写法介绍

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)
除了返回类型模式(上面代码片断中的ret-type-pattern),名字模式和参数模式以外,所有的部分都是可选的。 返回类型模式决定了方法的返回类型必须依次匹配一个连接点。 你会使用的最频繁的返回类型模式是 *,它代表了匹配任意的返回类型。 一个全称限定的类型名将只会匹配返回给定类型的方法。名字模式匹配的是方法名。 你可以使用 * 通配符作为所有或者部分命名模式。 参数模式稍微有点复杂:() 匹配了一个不接受任何参数的方法, 而 (..) 匹配了一个接受任意数量参数的方法(零或者更多)。 模式 (*) 匹配了一个接受一个任何类型的参数的方法。 模式 (*,String) 匹配了一个接受两个参数的方法,第一个可以是任意类型,第二个则必须是String类型。

下面给出一些常见切入点表达式的例子。

任意公共方法的执行:
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)
'this'在binding form中用的更多:- 请常见以下讨论通知的章节中关于如何使得代理对象可以在通知体内访问到的部分。
实现了 AccountService 接口的目标对象的任意连接点(在Spring AOP中只是方法执行) :
target(com.xyz.service.AccountService)
'target'在binding form中用的更多:- 请常见以下讨论通知的章节中关于如何使得目标对象可以在通知体内访问到的部分。
任何一个只接受一个参数,且在运行时传入的参数实现了 Serializable 接口的连接点 (在Spring AOP中只是方法执行)
args(java.io.Serializable)
'args'在binding form中用的更多:- 请常见以下讨论通知的章节中关于如何使得方法参数可以在通知体内访问到的部分。 请注意在例子中给出的切入点不同于 execution(* *(java.io.Serializable)): args只有在动态运行时候传入参数是可序列化的(Serializable)才匹配,而execution 在传入参数的签名声明的类型实现了 Serializable 接口时候匹配。
有一个 @Transactional 注解的目标对象中的任意连接点(在Spring AOP中只是方法执行)
@target(org.springframework.transaction.annotation.Transactional)
'@target' 也可以在binding form中使用:请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内访问到的部分。
任何一个目标对象声明的类型有一个 @Transactional 注解的连接点(在Spring AOP中只是方法执行)
@within(org.springframework.transaction.annotation.Transactional)
'@within' 也可以在binding form中使用:- 请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内访问到的部分。
任何一个执行的方法有一个 @Transactional annotation的连接点(在Spring AOP中只是方法执行)
@annotation(org.springframework.transaction.annotation.Transactional)
'@annotation' 也可以在binding form中使用:- 请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内访问到的部分。
任何一个接受一个参数,并且传入的参数在运行时的类型实现了 @Classified annotation的连接点(在Spring AOP中只是方法执行)
@args(com.xyz.security.Classified)

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/terryzero/archive/2009/04/27/4128858.aspx

 

Spring 2.x AOP声明式配置+声明式事务管理参考(含排除设置):

http://shenzhenchufa.blog.51cto.com/730213/262373

分享到:
评论

相关推荐

    spring1.x使用AOP实例

    最后,Spring 1.x的AOP支持还允许自定义切点表达式,这是通过实现`org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator`类并注册到Spring容器来完成的。这种方式使得基于注解的切面...

    aopalliance-1.0.jar,org.springframework.aop-3.0.0.RELEASE.jar

    aopalliance-1.0.jar,org.springframework.aop-3.0.0.RELEASE.jar,org.springframework.jdbc-3.0.0.RELEASEorg.springframework.beans-3.0.0.RELEASE.jar等

    spring4.x________

    5. AOP(面向切面编程)改进:Spring 4.x提供了更灵活的AOP配置,包括基于注解的切点表达式和类型安全的advice匹配。 6. 改进的测试框架:Spring Test模块提供了更强大的测试支持,包括对Spring Boot应用程序的集成...

    Spring1.x 和Spring2.x 版本上使用有什么区别

    Spring2.x在面向切面编程(AOP)方面有了显著提升,引入了更多的通知类型,如@AfterReturning、@Before等,并且支持基于注解的AOP,不再仅限于XML配置。这使得切面的定义更直观,提高了代码的可读性和可维护性。 3. ...

    org.springframework.aop-3.1.0.M2

    org.springframework.aop-3.1.0.M2

    Spring2.X以AspectJ 式AOP 配置事务

    博文链接:https://log-cd.iteye.com/blog/213445

    spring4.x.x中文文档

    安全性方面,Spring Security 4.x.x与Spring 4.x.x紧密集成,提供了全面的身份验证和授权功能,包括OAuth2支持,保护了Web应用和RESTful API的安全。 总的来说,Spring 4.x.x中文文档将涵盖这些关键领域的详细内容...

    Spring4.X教学视频

    Spring框架是Java开发中最常用的轻量级开源框架之一,它以其强大的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)能力深受开发者喜爱。Spring4.X作为其一个版本,引入了...

    Spring+3.x企业应用开发实战光盘源码,保证可用

    2. **MVC(模型-视图-控制器)**:Spring 3.x的Web MVC框架提供了更强大的视图解析和数据绑定能力,以及更灵活的配置方式,如基于注解的Controller和HandlerMapping。 3. **JSR-303/JSR-349(Bean验证)**:Spring ...

    org.springframework.aop-3.0.0.M3.jar

    org.springframework.aop-3.0.0.M3.jar

    spring-aop.jar各个版本

    spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...

    精通Spring4.x企业应用开发实战pdf+源码

    2. **AOP**:AOP是Spring提供的用于实现横切关注点(如日志记录、事务管理)的一种编程方式,通过切面和通知,可以在不修改原有业务代码的情况下,实现功能增强。 3. **Spring MVC**:Spring的Web MVC模块提供了...

    Spring 3.x企业应用开发实战.rar

    通过阅读《Spring 3.x企业应用开发实战》,读者将能够了解如何设置和配置Spring环境,创建bean定义,实现依赖注入,以及如何利用Spring MVC构建Web应用程序。此外,书中的案例将涵盖数据库操作、事务管理、安全控制...

    spring 2.x一些东西

    在2.x版本中,Spring框架包含了诸如IoC容器、数据访问/集成、Web、AOP、工具支持等多个模块。 1. **IoC 容器**: Spring的核心就是Inversion of Control(控制反转)容器,它负责管理对象的生命周期和对象间的依赖...

    org.springframework.aop-3.0.0.M4.jar

    org.springframework.aop-3.0.0.M4.jar

    精通spring2.x企业应用开发详解

    《精通Spring 2.x企业应用开发详解》是针对Spring框架2.x版本的一本深度学习教程,旨在帮助读者全面掌握Spring在企业级应用开发中的实践技巧和核心概念。这本书的源代码部分包括了"part5",暗示着它可能涵盖了整个...

    org.springframework.aop-sources-3.0.5.release.jar

    org.springframework.aop-sources-3.0.5.release.jar

    精通Spring4.x(包含源码)

    5. **Spring Boot**:虽然不是Spring4.x的核心部分,但作为Spring生态的一部分,Spring Boot简化了Spring应用的初始设置和运行,通过自动配置和起步依赖,使得快速构建微服务成为可能。 6. **Hibernate与MyBatis**...

    org.springframework.aop

    《Spring框架中的AOP模块详解》 在Java开发领域,Spring框架以其强大的功能和灵活性而备受推崇。在Spring框架中,AOP(Aspect Oriented Programming,面向切面编程)是其核心特性之一,它允许开发者将关注点从主...

    精通Spring 4.x 企业应用开发实战.pdf 和项目代码

    本书涵盖了Spring 4.x的多个关键模块,包括Spring Core、Spring AOP、Spring MVC、Spring Boot、Spring Data等。每个章节都配有对应的代码示例,以便读者能够亲手实践,加深理解。这些代码通常分布在不同的项目...

Global site tag (gtag.js) - Google Analytics