Spring的切入点(二 静态Pointcut的例子)
时间:2011-09-24 残梦追月
下面以JdkRegexpMethodPointcut为例,通过一个完整的范例展示如何使用静态切入点(完整工程代码见例程4.3)。在工程中我们定义一个People类和一个切面,并将他们在Spring xml配置文件中联系起来。当People对象执行我们切入点中定义的方法时,前置装备LogerPeople将会给出相应的提示信息。
新建一个工程AOP_Test4.3,添加Spring开发库后,新建aop.test包。
创建目标类People,该类有speak、Running、Loving、died四个成员方法。代码如下:
代码
/**
*
*/
package aop.test;
/**
* @author zhangyong
*
*/
public class People{
// 讲话
public void speak() {
System.out.println("Hello,我是People!");
}
// 跑步
public void Running() {
System.out.println("我在跑……跑…………逃……");
}
// 恋爱
public void Loving() {
System.out.println("我在和MM恋爱……别来打搅我!");
}
// 死亡
public void died() {
System.out.println("完了,我死了");
}
}
Spring的切入点(二 静态Pointcut的例子)(2)
时间:2011-09-24 残梦追月
创建一个类名为LogerPeople的前置装备,它实现MethodBeforeAdvice接口,在before方法中利用Log4J输出相关信息,代码如下:
代码
/**
*
*/
package aop.test;
import java.lang.reflect.Method;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.aop.MethodBeforeAdvice;
/**
* @author zhangyong
*
*/
public class LogerPeople implements MethodBeforeAdvice {
private static final Log log = LogFactory.getLog(LogerPeople.class);
public void before(Method method, Object[] args, Object target)
throws Throwable {
// 这里什么也不做,只是利用Log4J输出日志信息
log.info(target.getClass().getSimpleName() + "正在" +
method.getName()+ "!");
}
}
/**
*
*/
package aop.test;
import java.lang.reflect.Method;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.aop.MethodBeforeAdvice;
/**
* @author zhangyong
*
*/
public class LogerPeople implements MethodBeforeAdvice {
private static final Log log = LogFactory.getLog(LogerPeople.class);
public void before(Method method, Object[] args, Object target)
throws Throwable {
// 这里什么也不做,只是利用Log4J输出日志信息
log.info(target.getClass().getSimpleName() + "正在" +
method.getName()+ "!");
}
}
Spring的切入点(二 静态Pointcut的例子)(3)
时间:2011-09-24 残梦追月
再编写Spring配置文件,完成后如下:
代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springfr
|