zoukankan      html  css  js  c++  java
  • achieve aop through xml

    The main way to achive AOP is deploying a xml file。

    Now a xml file is presented to be a explanation .

    <?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:context="http://www.springframework.org/schema/context"
           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
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context-2.5.xsd
               http://www.springframework.org/schema/aop
               http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
    	<context:annotation-config />
    	<context:component-scan base-package="com.bjsxt"/>
     	<bean id="logInterceptor" class ="com.bjsxt.aop.LogInterceptor"></bean>
     	<aop:config>
     	    <aop:pointcut 
     	    expression="execution(public * com.bjsxt.service..*.add(..))" 
     	    id="servicePointcut"/>
     	    
     	    <aop:aspect id="logAspect" ref="logInterceptor">
    	       <aop:before method="before" pointcut-ref="servicePointcut" />
    	    </aop:aspect>
     	</aop:config>
     	
    	
     
    
    </beans>

    The tag <aop:config> declares that we will deploy a aop now. 

    While , I declare a "pointcut" at first.  It is obvious that it's a globe pointcut and it works for every aspect behind it . 

    "expression="execution(public * com.bjsxt.service..*.add(..))" shows the pointcut represent all method like “add()” in the classes of  the package named"com.bjsxt.service.."

    the pointcut‘s id is “servicePointcut” in addition。


    Next, a aspect is declared whose name is “logAspect” 。

    (nobody care what name it has in this situation)。

     pointcut-ref="servicePointcut" shows that it is a aspect for the pointcut named “servicePointcut”which we had created a moment ago.
     Its ref =  <span style="font-family: Arial, Helvetica, sans-serif;">"logInterceptor" ,so we can find a bean named logInterceptor  to know what methods the aspect has。

    And according to the sentence “<aop:before method</span>

    <span style="font-family: Arial, Helvetica, sans-serif;">="before"  " , I think we must do the method named "before" in "logIntercepor "  as the type of" before method". It means the method woulb be done before pointcut.</span>
    <span style="font-family: Arial, Helvetica, sans-serif;">
    </span>
    <span style="font-family: Arial, Helvetica, sans-serif;">We can also complete the xml file in design mode。 It looks much more clear.</span>
    <span style="font-family: Arial, Helvetica, sans-serif;">
    </span>


  • 相关阅读:
    内存中字的存储
    代码段
    CPU运行的流程
    字的传送
    内存中字的存储
    c语言中求数组元素的最大值和最小值
    linux系统 centos8.3 中安装 Rsudio
    Error in .External2(C_X11, paste0("png::", filename), g$width, g$height, : 解决linux R绘图问题
    linux系统中使用R的Cairo绘制png格式图片
    c语言中利用二维数组统计考试成绩之和
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5099774.html
Copyright © 2011-2022 走看看