日期:2014-05-16 浏览次数:21257 次
上篇文章我们对AOP的相关概念进行了解,接下来我们将采用Annotation的方式完成AOP的实现.当然也可以用XML的配置方式进行实现.
采用Annotation完成AOP示例
1、spring的依赖包配置
SPRING_HOME/dist/spring.jar
SPRING_HOME/lib/log4j/log4j-1.2.14.jar
SPRING_HOME/lib/jakarta-commons/commons-logging.jar
SPRING_HOME/lib/aspectj/*.jar
2、将横切性关注点模块化,建立SecurityHandler.java
package com.bjpowernode.spring;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
//采用注解指定SecurityHandler为Aspect
@Aspect
public class SecurityHandler {
/**
* 定义Pointcut,Pointcut的名称为addAddMethod(),此方法没有返回值和参数
* 该方法就是一个标识,不进行调用
*/
@Pointcut("execution(* add*(..))")
private void addAddMethod(){};
/**
* 定义Advice,表示我们的Advice应用到哪些Pointcut订阅的Joinpoint上
*/
@Before("addAddMethod()")
//@After("addAddMethod()")
private void checkSecurity() {
System.out.println("-------checkSecurity-------");
}
}