`
free9277
  • 浏览: 107184 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用切入点匹配方法实现Spring AOP环绕通知

阅读更多

       为AOP代理指定通知时,将增强目标类/代理接口里声明的所有方法。但是大多数情况下,你只想增强部分方法。此时可以使用切入点匹配方法来解决这个问题。

    切入点(pointcut)是另一个核心的AOP概念,它通常以表达式的形式出现,能够匹配特定的程序执行点来通知应用。在Spring AOP里,使用切入点类切入点声明为Spring Bean。

 

<bean id="arithmeticCalculator"
		class="org.mahz.easyaop.calculator.impl.ArithmeticCalculatorImpl" />
<bean id="methodNameAdvisor"
	class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
	<property name="mappedNames">
		<list>
			<value>add</value>
			<value>sub</value>
		</list>
	</property>
	<property name="advice" ref="logginAroundAdvice" />
</bean>

<bean id="logginAroundAdvice" 
         class="org.mahz.easyaop.calculator.aop.LoggingAroundAdvice" />
<bean
	class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
	<property name="beanNames">
		<list>
			<value>*Calculator</value>
		</list>
	</property>
	<property name="interceptorNames">
		<list>
			<value>methodNameAdvisor</value>
		</list>
	</property>
</bean>

     执行结果:

==========================================
============ Test add Method =============
==========================================
The method add()begin with [4.0, 0.0]
4.0 + 0.0 = 4.0
The Method add() ends with 4.0
==========================================
============ Test sub Method =============
==========================================
The method sub()begin with [4.0, 0.0]
4.0 - 0.0 = 4.0
The Method sub() ends with 4.0
4.0 * 0.0 = 0.0

 

分享到:
评论

相关推荐

    Spring AOP 16道面试题及答案.docx

    Advice与切入点关联,当切入点匹配到的连接点被执行时,Advice就会运行。 例如,切入点表达式`execution(* EmployeeManager.getEmployeeById(...))`表示匹配所有在`EmployeeManager`接口中名为`getEmployeeById`的...

    Spring Aop的简单实现

    在SLT-Spring-AOP这个项目中,你可以找到具体的实现示例,包括如何定义切面、通知和切入点表达式,以及如何在业务代码中应用这些概念。通过对该项目的深入学习,你将能够更好地理解和掌握Spring AOP的实战应用。

    使用Spring的注解方式实现AOP的细节

    6. **JoinPoint 和 Signature**: JoinPoint是切入点的实际实例,包含了被拦截的方法信息。Signature是JoinPoint的一部分,提供了方法签名的访问。 7. **@Around**: 最强大的通知类型,允许完全控制方法调用的生命...

    一个简单的spring AOP的实现

    在具体实现时,我们需要创建一个包含通知的方法的切面类,然后定义切入点表达式。如果使用注解,可以直接在切面类的方法上使用`@Pointcut`定义切入点。然后,将通知与切入点关联,例如,通过在通知方法上添加`@...

    spring aop的注解配置中,前置,后置,环绕通知,以及异常通知怎么获得被代理方法的参数

    在Spring AOP(面向切面编程)中,我们可以通过注解配置来实现对目标方法的增强,例如前置通知、后置通知、环绕通知和异常通知。这些通知在特定的时机执行,提供了灵活的代码逻辑插入点。下面我们将详细探讨如何在...

    spring aop实例annotation方法实现

    Spring AOP支持两种主要的通知类型:方法前(Before)、方法后(After)以及环绕通知(Around)。这些通知可以通过在方法上添加特定的注解来实现,例如`@Before`、`@After`和`@Around`。 1. `@Before`注解:在目标...

    JavaEE Spring AOP使用

    2. **XML配置的AOP**:在传统的Spring配置中,我们需要在`&lt;aop:config&gt;`元素内定义切面、切入点和通知。虽然相比注解方式繁琐,但在某些情况下更具有灵活性。 压缩包中的`SpringAOPTest`可能包含了一个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面向方面编程原理:AOP概念

    4. **丰富的切入点表达式语言**:Spring AOP支持使用SpEL(Spring Expression Language)来定义复杂的切入点表达式,这让开发者能够更加灵活地控制通知的触发条件。 #### 四、Spring AOP的实现示例 接下来,我们...

    SpringAop xml方式配置通知

    在Spring中,我们可以通过XML配置文件来定义切面、切入点和通知。以下是一个基本的XML配置示例: ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    spring AOP的运用

    2. 当遇到一个切入点匹配的连接点时,Spring会根据通知类型调用相应的`Advice`。例如,对于`@Before`通知,Spring会调用`MethodBeforeAdvice`接口的方法;对于`@Around`通知,Spring会调用`ProceedingJoinPoint`的`...

    spring之AOP(动态代理)

    AOP的核心概念是切面、通知、连接点、切入点和织入。在Spring中,AOP主要通过两种动态代理技术实现:JDK动态代理和CGLIB动态代理。 首先,让我们详细了解一下JDK动态代理。JDK动态代理基于Java的接口实现,它适用于...

    spring-aop实例

    4. **切入点表达式(Pointcut Expression)**:这是定义切点的语法,使用了AspectJ的表达式语言,可以精确地定位到需要应用通知的代码位置。 5. **代理(Proxy)**:Spring AOP通过动态代理机制创建目标对象的代理...

    Spring AOP简单demo

    2. **XML配置驱动**:在Spring配置文件中定义切面、通知和切入点表达式。 **Spring AOP示例** 以入门级的`advice`为例,我们可能有一个简单的日志切面: ```java @Aspect @Component public class LoggingAspect ...

    spring aop练习

    3. **通知方法**:如`logBefore()`,这个方法会被`@Before`注解,将在匹配的切入点的方法执行前运行。 4. **配置类**:如果使用Java配置,可能有一个`AppConfig`类,其中使用`@EnableAspectJAutoProxy`注解来启用...

    第十章 Spring AOP之通知

    在使用Spring AOP时,我们还需要了解连接点(Join Point)、切入点(Pointcut)和切面(Aspect)的概念。连接点是程序执行的特定点,如方法的调用。切入点是匹配连接点的表达式,定义了通知将应用到哪些连接点。切面...

    spring aop的demo

    在`springAop1`这个压缩包中,可能包含了一个简单的应用示例,展示了如何定义一个切面类,以及如何在该类中定义通知方法。例如,我们可能会看到一个名为`LoggingAspect`的类,其中包含了`@Before`注解的方法,用于在...

    spring切面AOP所使用的jar包

    - 使用AOP:Spring会自动为匹配的切点创建代理,并在合适的时候执行通知。 6. **实际应用**: 在SSH(Struts2 + Spring + Hibernate)架构中,Spring AOP常用于事务管理。当一个业务操作涉及多个数据库操作时,...

    Spring aop 性能监控器

    在上面的代码中,`@Around`注解定义了一个环绕通知,`@annotation(performanceMonitor)`是切入点表达式,意味着在所有带有`@PerformanceMonitor`注解的方法上执行此通知。`joinPoint.proceed()`是执行目标方法,而`...

Global site tag (gtag.js) - Google Analytics