Spring 切面配置


<!-- ******************静态切面实列***************** -->

<!-- 增强Bean -->

<bean id="waiterBerforeAdvice" class="com.yrdoa.web.WaiterBerforeAdvice"/>

  

    <!-- 目标Bean -->

  <bean id="miaomiao" class="com.yrdoa.web.MaoMao">

      <property name="name" value="猫咪小可"></property>

      <property name="jiao" value="汪汪................"></property>

  </bean>

  

  <!-- 管理切面类。p:advice-ref把增强放入切面 -->

  <bean id="staticAdvisor" class="com.yrdoa.web.StaticAdvisor" p:advice-ref="waiterBerforeAdvice"></bean>

  

  <!-- 

    设置父代理类 

    p:interceptorNames 放切面,而不再是增强

  -->

  <bean id="paramProxy" 

    class="org.springframework.aop.framework.ProxyFactoryBean"

    p:interceptorNames="staticAdvisor"

    p:proxyTargetClass="true" />

  <!-- 设置子代理类 -->

  <bean id="userDaoProxy" parent="paramProxy" p:target-ref="miaomiao"></bean>

  

  

  

  

  <!-- ****************** AOP实列********AOP的切面是非常的重要的感念。还有切点也是重要的概念 spring 提供了很多 切面和 切点供我们选择 提供了很多的方案********* -->

  <!-- ****************** 定义前置通知********yuehui方法********* -->

  <bean id="girl" class="com.aop.GirlImpl"></bean>

   <bean id="grilService" class="com.aop.GrilServiceImpl"></bean>

  

  

  <bean id="girlBeforeAdvice" class="com.aop.GirlBeforeAdvice" ></bean>

  <bean id="beforemyPointcut" class="com.aop.MyPointcut" ></bean>

  <bean id="myAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">

    <property name="pointcut">

      <ref local="beforemyPointcut"/>

    </property>

    

    <property name="advice">

      <ref local="girlBeforeAdvice"/>

    </property>

  

  </bean>

  

  

  <!-- *******注意使用正则表达式*********** 定义后置通知********yuehui方法********* -->

  

    <bean id="girlAfterAdvice" class="com.aop.GirlAfterAdvice" ></bean>

    <bean id="regexpAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">

      <property name="patterns">

           <list>

              <value>.*hello</value>

           </list>

      </property>

      <property name="advice">

         <ref local="girlAfterAdvice"/>  

      </property>

    </bean>

  

  

  <!-- ****************** 定义环绕通知********yuehui方法********* -->

    <bean id="girlMethodInterceptor" class="com.aop.GirlMethodInterceptor" ></bean>

    <bean id="myAroundAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">    

      <property name="mappedNames">

          <list>

                <value>hello</value>

          </list>

      </property>

      <property name="advice">

        <ref local="girlMethodInterceptor"/>  

      </property>

    </bean>

    

    

       <!-- ********这个配置没有织如代理类 ********* 异常通知********service方法********* -->

    <bean id="girlThrowsAdvice" class="com.aop.GirlThrowsAdvice"></bean> 

        <bean id="myThrowsAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">    

      <property name="mappedNames">

          <list>

                <value>yamiedie</value>

          </list>

      </property>

      <property name="advice">

        <ref local="girlThrowsAdvice"/>  

      </property>

    </bean> 

    

    

    

   <!-- 定义父类代理类,名 称为myProxy,将通过myProxy访问业务类中的方法 -->  

    <bean id="myProxy" class="org.springframework.aop.framework.ProxyFactoryBean">  

      <property name="proxyInterfaces">  

        <value>com.aop.Girl</value> 

      </property>  

      

      <property name="interceptorNames">  

        <list>           

         <value>myAdvisor</value>  

         <value>regexpAdvisor</value>

          <value>myAroundAdvisor</value>  

        </list>  

      </property>  

    </bean> 

    <!-- 设置子代理类(也可以说成注入目标对象) 可以配置多个子代理类 --> 

    <bean id="girlProxy" parent="myProxy" p:target-ref="girl"></bean>


转载于:https://my.oschina.net/zhangtiant/blog/644670

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值