1、advisor是pointcut和advice的桥梁
public interface PointcutAdvisor extends Advisor。spring中每个内建的pointcut都有相对应的pointcutAdvisor。常用的有两种,NameMatchMethodPointcutAdvisor,RegExphMethodPointcutAdvisor。NameMatchMethodPointcutAdvisor 通过匹配target的id值和mappeName来决定joincut。而RegExphMethodPointcutAdvisor是通过pattern来确定target已经joincut。pattern字符为:
.代表任何单一字符,\代表转义。格式为[包名.类名.]方法名
java代码同上一篇,配置文件如下。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd ">
<bean id="hello" class="cn.com.gan.spring.aop.ImpHello"></bean>
<bean id="loggera" class="cn.com.gan.spring.aop.LoggerAfter"></bean>
<bean id="loggerb" class="cn.com.gan.spring.aop.LoggerBefore"></bean>
<bean id="logger" class="cn.com.gan.spring.aop.loggerAdvisor"></bean>
<bean id="advisor"
class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
<property name="mappedName" value="s*n"></property>
<property name="advice">
<ref local="logger" />
</property>
</bean>
<bean id="regadvisor"
class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="pattern" value=".*Again"></property>
<property name="advice" ref="logger"></property>
</bean>
<bean id="proxyhello" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>cn.com.gan.spring.aop.IHello</value>
</property>
<property name="target">
<ref local="hello" />
</property>
<property name="interceptorNames">
<list>
advisor
</list>
</property>
</bean>
</beans>
分享到:
相关推荐
1. spring-aop.jar:这是Spring AOP的核心库,包含了AOP的API和实现。 2. spring-beans.jar:Spring的bean容器,负责管理和装配bean,AOP也是基于这个容器实现的。 3. spring-context.jar:提供了上下文支持,包括...
Spring AOP提供了Pointcut、Advisor、Aspect等概念,用于定义切入点、通知和切面。开发者可以通过自定义Aspect来实现特定的功能增强。 11. AOP的实现方式: Spring AOP支持基于代理和基于注解的两种方式。基于代理...
2. **构建器模式(Builder)**:Spring AOP中的`BeanFactoryAspectJAdvisorsBuilder`实现了构建器模式,它用于构建切面(Aspect)的顾问(Advisor)集合。构建器模式将复杂对象的构建过程分解,方便对各部分独立处理...
2. **注解配置**:Spring 2.5引入了基于注解的AOP配置,可以在切面类上使用@Aspect注解,@Before、@After、@AfterReturning、@AfterThrowing和@Around定义通知,@Pointcut定义切点。例如: ```java @Aspect ...
- `spring-aop.jar`:Spring AOP的核心库,包含了AOP的API和实现。 - `spring-beans.jar`:Spring Bean的定义和管理,AOP与之紧密关联。 - `spring-core.jar`:Spring的基础库,提供核心工具类和IoC容器。 - `...
你需要实现`org.springframework.aop.Advisor`接口的子接口`org.aopalliance.intercept.MethodInterceptor`,并提供一个`invoke()`方法。 4. **Throw Advice**:在方法抛出异常后调用,但不包括在方法内部捕获并...
"spring-aop.jar"包含了Spring AOP框架的核心类和接口,如org.springframework.aop.*包下的内容,它提供了基于代理的AOP实现。而"spring-aspects.jar"则包含了一些预定义的AspectJ切面,比如事务管理方面的支持。 ...
Spring AOP API的设计与实现是一个复杂而灵活的系统,它通过AOP代理、Advisor、Pointcut和Advice等组件,实现了对应用程序的横切关注点的解耦和封装,从而提高了代码的可维护性和复用性。理解并熟练运用这些概念和...
- **基于 API 方式来使用 Spring AOP**:通过编程的方式配置切面和通知。 ##### 5.4 Spring 中的 AOP 实现及应用 - **Spring AOP 实现**:Spring 使用代理模式实现 AOP 功能,支持基于接口的动态代理和 CGLIB 字节...
AOP在Spring框架中的实现主要分为两种方式:使用Spring的API接口以及自定义类来实现。 1. **什么是AOP** AOP(Aspect Oriented Programming)是一种编程思想,是对传统的面向对象编程(OOP)的补充。在OOP中,我们...
- **基于API的方式**:通过编程的方式直接使用Spring AOP API来实现AOP功能。 #### 五、Spring AOP实现与应用 - **Spring AOP支持**:Spring支持多种AOP实现方式,包括AspectJ和自己的AOP实现。 - **配置方法**:...
Spring提供了两种主要的AOP实现方式:基于XML配置和基于注解。 1. **AOP原理分析** AOP的核心在于切面和通知。切面(Aspect)是关注点的模块化,比如事务管理就是一个典型的切面。通知(Advice)是在特定连接点...
AOP Alliance是Spring和其他AOP框架之间的一个接口层,它提供了一个通用的API,使得不同的AOP实现能够相互协作,从而简化了多框架集成的工作。本文将深入探讨AOP Alliance的核心概念、功能以及在Spring AOP开发中的...
它定义了一些基础的切面接口,如Advisor(顾问)、Pointcut(切点)和Advice(通知),这些接口在不同的AOP框架中通用,有助于实现跨框架的切面代码重用。 Aspects则是AspectJ中的核心概念,它代表了关注点的封装...
7. **Spring AOP中的拦截器调用实现**:Spring AOP使用Advisor和Interceptor实现拦截器链,处理方法调用前后的逻辑。MethodBeforeAdvice、AfterReturningAdvice等接口定义了拦截器的行为。 8. **Spring 驱动...
通过配置`<aop:config>`、`<aop:pointcut>`、`<aop:advisor>`等元素,可以实现切面、切点和通知的声明,这对于理解Spring AOP的底层工作原理十分有帮助。 总结来说,本篇内容覆盖了Spring框架的AOP编程、代理机制,...
10. **Spring的XML配置**:在1.2版本中,XML配置是主要的配置方式,开发者使用标签定义Bean,使用标签设置属性,使用<aop:config>和<aop:advisor>等标签配置切面。 11. **事件监听**:Spring 1.2支持事件监听机制,...
7.4. Spring里的Advisor API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 7.5.6. 使用“全局”通知器 ...