`
dawuafang
  • 浏览: 1192272 次
文章分类
社区版块
存档分类
最新评论

Spring的AOP(三):切入点Pointcut 、Advisor及引入

 
阅读更多

四:切入点Pointcut Advisor

1.Pointcut :一组规定,规定一个切面可以织入到哪个类的哪些方法。 2.Advisor:是一种特殊的Advice,规定了哪个切面,要织入到哪个类的哪些方法(配置

getClassFilter:来过滤,要织入的目标类

getMethodMatcher:来过滤,要织入的方法

的时候,由AdvicePointcut 构成)

3.系统自带的一些Pointcut

1NameMatchMethodPointcut:对方法名称进行匹配。

注意:对字符串数组用list赋值,会自动转换为字符串数组。

2RegexpMethodPointcutAdvisor:根据正则表达式匹配

五:引入:

1.不用修改一个类,而可以对这个类增加一定的方法和属性。

2.使用步骤:

1)将新增加的方法,放到一个新的接口里面

2)编写引入类

3)配置引入

<bean id="someBeanII"

class="aop1.SomeBeanIntroductionInterceptor"/>

<beanid="someBeanIIAdvisor"

class="org.springframework.aop.support

.DefaultIntroductionAdvisor">

<constructor-arg>

<ref local="someBeanII"/>

</constructor-arg>

<constructor-arg>

<value>aop1.OtherBean</value>

</constructor-arg>

</bean>

注意:虽然语法有这么个功能,但是效率很低,建议不要使用

分享到:
评论

相关推荐

    详解Spring 框架中切入点 pointcut 表达式的常用写法

    在Spring框架中,切入点(pointcut)表达式是AOP(面向切面编程)的核心组成部分,用于定义关注点的精确位置,比如哪些方法应该被拦截。切入点表达式是基于AspectJ语法的,允许开发者精确地指定要拦截的方法。下面将详细...

    springAop的配置实现

    - `&lt;aop:advisor&gt;`:定义通知和切入点的关联,指定何时何地执行通知。 - `&lt;aop:aspect&gt;`:定义切面,包括其通知和切入点。 - `&lt;aop:before&gt;`、`&lt;aop:after&gt;`、`&lt;aop:around&gt;`等:分别用于定义不同类型的通知。 **5....

    SPRING:aspect和advisor区别

    - 这个例子展示了如何定义一个事务顾问`txAdvice`,并通过`&lt;aop:advisor&gt;`标签将其与切入点`busServiceMethods`关联起来。这表示所有符合该切入点定义的方法调用都将受到事务控制。 #### 四、Aspect与Advisor之间...

    Spring AOP 拦截器 Advisor

    在 Spring AOP 中,Advisor 是一个组合了通知(Advice)和切入点(Pointcut)的对象,它定义了何时以及如何执行特定的操作。 首先,我们要理解 AOP(面向切面编程)的核心概念。AOP 是一种编程范式,旨在减少代码...

    spring aop管理xml版

    - `&lt;aop:advisor&gt;`:可以包含一个通知和一个切入点,是更细粒度的配置单元。 在实际应用中,我们会在`&lt;bean&gt;`元素中定义切面类,并在`&lt;aop:config&gt;`中通过`&lt;aop:aspect&gt;`元素引用它,然后定义相应的通知和切入点。...

    Spring AOP IOC源码笔记.pdf

    Spring AOP提供了Pointcut、Advisor、Aspect等概念,用于定义切入点、通知和切面。开发者可以通过自定义Aspect来实现特定的功能增强。 11. AOP的实现方式: Spring AOP支持基于代理和基于注解的两种方式。基于代理...

    SpringAop学习笔记以及实现Demo

    3. **基于XML配置的AOP**:在Spring的配置文件中,可以通过`&lt;aop:config&gt;`、`&lt;aop:advisor&gt;`、`&lt;aop:pointcut&gt;`等标签定义切面、通知和切入点。 ### 三、Spring AOP实战 1. **经典代理模式**:通过JDK动态代理或...

    Spring AOP实现机制

    - 在`&lt;aop:config&gt;`标签内定义切面,`&lt;aop:pointcut&gt;`定义切入点,`&lt;aop:advisor&gt;`定义通知。 - `&lt;aop:aspect&gt;`标签用于定义完整的切面,包括切入点和通知。 - **注解配置**: - 使用`@Aspect`注解定义切面类,`...

    应用Spring AOP(二)-------通过Advisor指定切入点

    在本篇博文中,我们将深入探讨Spring AOP(面向切面编程)的使用,特别是如何通过Advisor指定切入点。Spring AOP是Spring框架的核心组件之一,它允许我们在不修改业务代码的情况下,实现对程序运行时行为的拦截和...

    spring AOP入门教程

    1. **XML配置**:在`&lt;aop:config&gt;`标签中定义切面,`&lt;aop:advisor&gt;`定义通知,`&lt;aop:pointcut&gt;`定义切入点。 2. **注解驱动**:使用`@Aspect`注解声明切面类,`@Before`、`@After`、`@Around`、`@AfterReturning`、...

    Spring aop使用探究实例

    4. **切入点(Pointcut)**:一组连接点的集合,定义了通知何时会被执行。 5. **引入(Introduction)**:允许向被通知的对象添加新的方法或字段。 6. **目标对象(Target Object)**:包含连接点的原始对象,也...

    SpringAop实例

    例如,我们可以通过`&lt;aop:config&gt;`标签来开启AOP支持,然后使用`&lt;aop:pointcut&gt;`定义切入点,`&lt;aop:advisor&gt;`或`&lt;aop:aspect&gt;`定义通知。这种方式清晰地将切面逻辑分离出来,有利于团队协作和代码维护。 2. 注解...

    spring aop所需jar包

    - **切入点(Pointcut)**:定义一组连接点的规则,用于匹配并定位需要应用通知的地方。 - **织入(Weaving)**:将切面应用到目标对象上,创建新的代理对象的过程。可以在编译时、类加载时或运行时完成。 2. **...

    spring aop 五个依赖jar

    使用Spring AOP,开发者可以定义切面,声明切入点(即关注点的定位),编写通知(即实际的增强代码),并通过配置将它们应用到目标对象上。这样,我们可以保持业务逻辑的清晰,同时实现系统级的服务,如事务管理、...

    SpringAOP简单项目实现

    总结,这个"SpringAOP简单项目实现"涵盖了Spring AOP的基础知识,包括切面、通知、切入点的定义与配置,以及如何在实际项目中使用Maven进行构建和依赖管理。对于初学者来说,这是一个很好的实践案例,能够帮助他们...

    SpringAOP实现.docx

    - **XML配置**:在Spring的配置文件中,使用`aop:config`标签开启AOP支持,然后通过`aop:pointcut`定义切入点,`execution()`表达式指定需要拦截的方法。例如,下面的配置会拦截`com.spong.demo03.UserServiceImpl`...

    spring AOP切面编程

    2. 切点表达式(Pointcut Expression):使用正则表达式或者预定义的切入点表达式(如execution()、within()、args()等)来定义切点。 四、通知类型 1. 前置通知(Before):在目标方法执行前执行,如`@Before`。 2...

    征服Spring AOP—— Schema

    3. `&lt;aop:advisor&gt;`:顾问元素,它将切入点与通知关联起来。顾问包含了何时以及如何执行通知的信息。 4. `&lt;aop:aspect&gt;`:定义一个切面,可以包含多个通知和切入点。切面可以看作是封装了多个相关通知的逻辑单元。 ...

    Spring AOP框架实现的结构分析

    Advice 组件是增强的实现,Pointcut 组件是切入点的描述,Advised 组件是目标对象信息的保存,AopProxy 组件是 AOP 代理对象,AopProxyFactory 组件是生成 AopProxy 对象的工厂。图 1 是对增强、切入点、方面、AOP ...

Global site tag (gtag.js) - Google Analytics