spring的AOP需要导入的特殊包(当然其他的spring的基础包是必须的

     aopalliance.jar

     aspectjrt.jar                  

     aspectjweaver.jar

   

  1.Hello.java 接口

package com.xj.bean.aop;public interface Hello {   public void addHello();   //添加方法      public void deleteHello();  //删除方法      public void findHello();}

 

2.HelloImpl.java

package com.xj.bean.aop;public class HelloImpl implements Hello{	@Override	public void addHello() {		System.out.println("add");	}	@Override	public void deleteHello() {		System.out.println("delete");	}	@Override	public void findHello() {		System.out.println("find");	}}

3.HelloProxy.java (即所谓的Aspect类)

import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;@Aspectpublic class HelloProxy {                  //方法执行之前(@Before)打印日志(所谓的Advice特殊功能)         //execution 表示特殊功能的作用范围         	@Before("execution( * com.xj.bean.aop.*.add*(..))")	private void beforeLog(){                System.out.println("before check add");    	    }		//方法执行之后(@After)打印日志(所谓的Advice特殊功能)		@After("execution(* com.xj.bean.aop.*.delete*(..))")   	private void afterLog(){           		System.out.println("after check delete");	}}

4.ApplicationContext.xml

   

   
           
      
    
    
    
   

5.测试

ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");Hello hello = (Hello)context.getBean("hello");hello.addHello();hello.deleteHello();

6.结果

before check add     //add方法之前打印日志adddeleteafter check delete    //delete方法之后打印日志