Spring学习笔记:使用Pointcut 和Advisor实现AOP
本文内容纲要:
- 基础知识- 用xml配置Pointcut
- 用xml配置Advisor,将pointcut与advice关联起来
- 用xml配置代理类
- 不单独配置Pointcut,在配置Advisors时class选择NameMatchMethodPointcutAdvisor
- 创建使用正则表达式匹配要拦截的method的切点
基础知识
在 Spring AOP 中,有 3 个常用的概念,Advices 、 Pointcut 、 Advisor ,解释如下:
- Advices :表示一个 method 执行前或执行后的动作。
- Pointcut :表示根据 method 的名字或者正则表达式去拦截一个 method 。
- Advisor : Advice 和 Pointcut 组成的独立的单元,并且能够传给 proxy factory 对象。
用xml配置Pointcut
<bean id="Pointcut的Id" class="org.springframework.aop.support.NameMatchMethodPoint"> <property name="mappedName" vlaue="方法名"/>
</bean>
用xml配置Advisor,将pointcut与advice关联起来
<bean id="Advisor的Id" class="org.springframework.aop.support.DefaultPointcutAdvisor"> <property name="pointcut" ref="要关联的Pointcut"/>
<property name="advice" ref="要关联的Advice"/>
</bean>
用xml配置代理类
<bean id="生成的代理的Id" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="target" ref="要代理的类(即需要劫持的类)"/>
<property>
<list>
<value>Advisor的Id</value>
</list>
</property>
</bean>
不单独配置Pointcut,在配置Advisors时class选择NameMatchMethodPointcutAdvisor
<bean id="Advisor的Id" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor"> <property name="mappedName" value="方法名"/>
<property name="advice" ref="要关联的Advice" />
</bean>
创建使用正则表达式匹配要拦截的method的切点
在class中选择org.springframework.aop.support.RegexpMethodPointcutAdvisor
<bean id="Advisor名" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <property name="patterns">
<list>
<value>.*URL.*</value>
</list>
</property>
<property name="advice" ref=""/>
</bean>
本文内容总结:基础知识,用xml配置Pointcut,用xml配置Advisor,将pointcut与advice关联起来,用xml配置代理类,不单独配置Pointcut,在配置Advisors时class选择NameMatchMethodPointcutAdvisor,创建使用正则表达式匹配要拦截的method的切点,
原文链接:https://www.cnblogs.com/infoflow/p/8975283.html
以上是 Spring学习笔记:使用Pointcut 和Advisor实现AOP 的全部内容, 来源链接: utcz.com/z/362874.html