使用Spring 2.0新特性实现前置通知--基于Annotation方式

大体上和http://blog.csdn.net/daryl715/archive/2007/10/11/1820530.aspx类似,变化的只有通知类和配置文件

我们使用了annotation方式来设置AOP Advise,在XML编写上更加简化,但坏处就是需要重新编译java源文件

 

package  AOP2Annotation;

import  org.aspectj.lang.JoinPoint;
import  org.aspectj.lang.annotation.Aspect;
import  org.aspectj.lang.annotation.Before;

@Aspect
public   class  LogBeforeAdvice  {
  @Before(
"execution(* AOP2Annotation.ISpeaker.* (..))" )
  
public void before(JoinPoint joinPoint){
      System.out.println(
"log before service"); 
  }

}

 

<? xml version="1.0" encoding="UTF-8" ?>
<!--  配置文件Schemal需要改变  -->
< beans
    
xmlns ="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    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.0.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"
>
    
    
    
<!--  加入aop名称空间后,就可以使用spring2.0的标签aop了  -->
    
< bean  id ="logBeforeAdvise"  class ="AOP2Annotation.LogBeforeAdvice" />
    
< bean  id ="helloSpeaker"  class ="AOP2Annotation.HelloSpeaker" />
    
    
< aop:aspectj-autoproxy />
    
</ beans >

你可能感兴趣的:(使用Spring 2.0新特性实现前置通知--基于Annotation方式)