【Spring】4.2、通过切点来选择连接点

Spring AOP中,要使用AspectJ的切点表达式语言来定义切点。

Spring仅支持AspectJ切点指示器的一个子集。

Spring是基于代理的,而某些切点表达式是与基于代理的AOP无关的。

下面是Spring AOP所支持的AspectJ切点指示器:

其中,只有execution指示器是实际执行匹配的,其它指示器都是用来限制匹配的。

Spring中尝试使用AspectJ其它指示器时,会抛出IllegalArgument-Exception异常

1、编写切点

假设有一个接口

package concert;

public interface Performance{
    public void perform();
}

使用切点表达式设置当perform()方法执行时触发通知的调用:

使用within()指示器限制仅匹配concert包

支持的关系操作符有且(&&),或(||),非(!)

如果用XML配置,因为&在XML中有特殊含义,所以可以使用and,or,not来作为关系操作符

2、切点中选择bean

Spring引入了一个新的bean()指示器,通过bean的ID来限制bean

限制id为woodstock的bean才应用通知


 限制id非woodstock的bean才应用通知

原文地址:https://www.cnblogs.com/LiveYourLife/p/9029199.html

时间: 2024-10-02 07:23:38

【Spring】4.2、通过切点来选择连接点的相关文章

通过切点来选择连接点

关于Spring AOP的AspectJ切点,最重要的一点就是Spring仅支持AspectJ切点指示器(pointcut designator)的一个子集.让我们回顾下,Spring是基于代理的,而某些切点表达式是与基于代理的AOP无 关的.表4.1列出了Spring AOP所支持的AspectJ切点指示器. 当我们查看如上所展示的这些Spring支持的指示器时,注意只有execution指示器是实际执行匹配的,而其他的指示器都是用来限制匹配的.这说明execution指示器是我们在编写切点定

【框架】[Spring]AOP拦截-使用切点:AspectJExpressionPointcut-切点语言

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 用AspectJExpressionPointcut实现的切点比JdkRegexpMethodPointcut实现切点的好处就是,在设置切点的时候可以用切点语言来更加精确的表示拦截哪个方法! 可以精确到返回参数,参数类型,方法名. 当然,也可以模糊匹配. 这里用纯Java的方式和配置xml的方法都来演示一遍. 需要的包什么的就不解释了,如不动,请参考前面的. 首先,准备好原型对象P

Spring Data Redis与Jedis的选择(转)

说明:内容可能有点旧,需要在业务上做权衡. Redis的客户端有两种实现方式,一是可以直接调用Jedis来实现,二是可以使用Spring Data Redis,通过Spring的封装来调用.应该使用哪一个呢?基于当前版本Spring Data Redis 1.0.1和Jedis 2.0.0,分析如下: Spring Data Redis 1.0.1 优点 1.对具体Redis客户端做了封装,客户端可在Jedis,Jredis,Rjc等Java客户端中做出选择和切换 . 2.用template对调

spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序

spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明:ModelAndView Java代码 @RequestMapping("/show1") publicModelAndView show1(HttpServletRequest request, HttpServletResponse response) throwsException { ModelA

Spring面向切面编程

  1.面向切面编程(AOP)的概念:把项目中需要在多处用到的功能,比如日志.安全和事物等集中到一个类中处理,而不用在每个需要用到该功能的地方显式调用.   2.术语解释:        横切关注点:分布应用于多处的功能        切面:横切关注点可以被模块化为一个类,这个类被称为一个切面        通知(advice):切面要完成的工作.Spring的通知有5种类型:before.after.after-returning.after-throwing和around这五种类型.    

Spring实战第四章

,引言 在软件开发中,散布于应用中多处的功能被称为横切关注点(crosscuttingconcern).通常来讲,这些横切关注点从概念上是与应用的业务逻辑相分离的 DI有助于应用对象之间的解耦,而AOP可以实现横切关注点与它们所影响的对象之间的解耦. 一.面向切面编程 面向切面编程时,仍然在一个地方定义通用功能,但是可以通过声明的方式定义这个功能要以何种方式在何处应用,而无需修改受影响的类.横切关注点可以被模块化为特殊的类,这些类被称为切面(aspect).这样做有两个好处:首先,现在每个关注点

spring(4)面向切面的Spring(AOP)

[0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  "spring(4)面向切面的Spring(AOP)" 的相关知识: 2)在软件开发中,散布于应用中多处的功能被称为横切关注点.通常来讲,这些横切关注点从概念上是与应用的业务逻辑相分离的(但是往往会直接嵌入到应用的业务逻辑中).把这些横切关注点与业务逻辑相分离正是面向切面编程(AOP)所要解决的问题:(干货--引入横切关注点及其所要解决的问题) 3)

【Spring系列】Spring AOP面向切面编程

前言 接上一篇文章,在上午中使用了切面做防重复控制,本文着重介绍切面AOP. 在开发中,有一些功能行为是通用的,比如.日志管理.安全和事务,它们有一个共同点就是分布于应用中的多处,这种功能被称为横切关注点(cross-cutting concerns). DI(依赖注入)有助于应用对象之间的解耦,而AOP可以实现横切关注点与他们所影响的对象之间的解耦. 面向切面编程在Spring AOP中有4种类型的调用,方法调用的之前.后.异常增加其他方法,方法调用的前和后调用其他方法,将方法中的参数传递给其

Spring基础知识之基于注解的AOP

背景概念: 1)横切关注点:散布在应用中多处的功能称为横切关注点 2)通知(Advice):切面完成的工作.通知定了了切面是什么及何时调用. 5中可以应用的通知: 前置通知(Before):在目标方法被调用前调用通知功能. 后置通知(After):在目标方法完成后调用通知,此时不会关系方法输出什么. 返回通知(After-returning):在目标方法成功执行后调用通知. 异常通知(After-throwing):在目标方法抛出异常后调用通知. 环绕通知(Around):通知包裹了被通知的方法