1)加入jar包
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
spring-aop-4.0.0.RELEASE.jar
spring-aspects-4.0.0.RELEASE.jar
commons-logging-1.1.3.jar
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
2)在配置文件中加入aop的命名空间
3)基于注解的方式
①在配置文件中加入如下配置
<!-- 使AspjectJ注解起作用:自动为匹配的类生成代理对象-->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
②把横切关注点的代码抽象到切面的类中
i.切面首先是一个IOC的bean,即加入@Component注解
ii.切面还需要加入@Aspect注解
③在类中声明各种通知
i.声明一个方法
ii.在方法前加入@Before注解
④可以在通知方法中声明一个类型为JoinPoint的参数,然后就能访问链接细节,如方法名称和参数值。
@Aspect
@Component
public class LoggingAspect{
//声明该方法是一个前置通知:在目标方法开始前执行
@Before("execution(*com.spring.aop.impl.*.*(int, int))")
public void beforeMethod(JoinPoint joinpoint){
String methodName = joinPoint.getSignature().getName();
List<Object> args = Arrays.aslist(joinPoint.getArgs());
System.out.pritln("The method " + methodName + " begins with " + args);
}
}