在xml中

        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-3.0.xsd

           http://www.springframework.org/schema/context

           http://www.springframework.org/schema/context/spring-context-3.0.xsd

           http://www.springframework.org/schema/aop

           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

           

   


   


   

    

   

       

                     advice-ref="beforeAdvice"/>

       

             

                         method="beforeAdvice(java.lang.String)" 

                         arg-names="param"/>

             

                                  method="afterReturningAdvice" 

                                  arg-names="retVal"

                                  returning="retVal"/>

             

                                  method="afterThrowingAdvice" 

                                  arg-names="exception"

                                  throwing="exception"/>


             

                       method="afterFinallyAdvice"/>


             

                         method="aroundAdvice"/>

                         

           

                                 implement-interface="cn.javass.spring.chapter6.service.IIntroductionService"

                                 default-impl="cn.javass.spring.chapter6.service.impl.IntroductiondService"/>

       

   

        

   





java中例子1

    @Test

    public void testSchemaBeforeAdvice() {

        System.out.println("======================================");

        ApplicationContext ctx = new ClassPathXmlApplicationContext("chapter6/advice.xml");

        IHelloWorldService helloworldService = ctx.getBean("helloWorldService", IHelloWorldService.class);

        helloworldService.sayBefore("before");

        System.out.println("======================================");

    }


例子2


    @Test

    public void testSchemaAdvisor() {

        System.out.println("======================================");

        ApplicationContext ctx = new ClassPathXmlApplicationContext("chapter6/advice.xml");

        IHelloWorldService helloworldService = ctx.getBean("helloWorldService", IHelloWorldService.class);

        helloworldService.sayAdvisorBefore("haha");

        System.out.println("======================================");

    }




这里说明一下 

所以“”实际上是定义横切逻辑,就是在连接点上做什么,“”则定义了在哪些连接点应用什么。Spring这样做的好处就是可以让多个横切逻辑(即定义的)多次使用,提供可重用性。