Spring 3.0 AOP 简单DEMO(1)

对于Spring AOP的介绍就不写了,想必大家要看肯定对其了解一二了!
首先去Spring官方下载 ,除此之外还需要Commons logging.jarAspectJ 及aopaliacne.jar 的支持

 

 

因 为是Spring AOP 的DEMO 所以在Eclipse里创建web项目 或是 java项目均可!

 

首先创建 一个接口:Person.java

public interface Person {

	public void readBook(String name);
}
 

然 后是实现类:Man.java

public class Man implements Person {

	public void readBook(String name) {

		System.out.println("Man:"+name);

	}

}

 

还 有一个很重要的切入点的类:

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

@Aspect
public class PersonProxy {

	@After("execution(public * *.*(..))") //定义切点,匹配规则为(范围 返回类型 返回类.方法(参数设置)  
	public void after(){  
	    System.out.println("After:....................");  
	}
	
	@Before("execution(* *(..))") //定义切点,匹配规则为(返回类型 方法(参数设置)
	public void before(){  
	    System.out.println("Before:*******************");  
	}
	
}

 现 在已经基本完成一大半了

还差一个Spring context 的配置文件要放在src下,其实这个文件名叫什么并不重要,我们还是遵循一个潜规则就还叫它:ApplicationContext.xml

<?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-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  
           ">  
    <!-- 注册aspectj -->
    <aop:aspectj-autoproxy/>
    
    <!-- 注册代理过滤器 -->
    <context:component-scan base-package="com.baobao.aop.inter">  
        <context:include-filter type="annotation"  
           expression="org.aspectj.lang.annotation.Aspect" />  
    </context:component-scan>
    
    <bean id="PersonProxy" class="com.baobao.aop.proxy.PersonProxy"/>  
    <bean id="Man" class="com.baobao.aop.impl.Man"/>  
</beans>

 完 成之后还差最后一个测试类:AopDemo1.java

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.baobao.aop.inter.Person;

public class AopDemo1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
                // 获取配置文件
		 ApplicationContext ctx=new ClassPathXmlApplicationContext("ApplicationContext.xml");
                //通过配置文件获得接口的实例 
		 Person p=(Person)ctx.getBean("Man");  
                //父类调用子类方法
		 p.readBook("spring aop"); 
		 
	}

}

   运行一下测试类,我已经测试过没有问题!

没有写太多说明,只是一个AOP 的简单小例子,入门而已。

你可能感兴趣的:(eclipse,spring,AOP,xml,bean)