Spring学习笔记:使用Pointcut 和Advisor实现AOP

基础知识

在 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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值