AOP_使用spring框架进行面向切面编程
用spring实现AOP有两种方式:基于xml配置方式和基于注解方式,
基于注解方式
一、架包:cglib-nodep-2.1_3.jar? aspectjweaver.jar? aspectjrt.jar(AOP)
????? 其它架包:common-annotations.jar?? spring.jar??? commons-logging.jar
二、先在配置文件中加入如下内容
三、启动对 aspectj 的支持,在xml文件中加入如下内容
三、PersonServiceImp.java
package com.qh.service;/* * 切面的实现 */import org.aspectj.lang.ProceedingJoinPoint;public class MyInterceptor {public void doBeforeOne(){System.out.println("我是第一个前置通知!");}public void doBefore(String str){System.out.println("我是前置通知!"+str);}public void doAfterReturning(String str){System.out.println("我是后置通知!"+str);}public void doAfterThrowing(Exception e){System.out.println("我是例外通知!"+e);}public void doAfter(){System.out.println("我是最终通知!");}public Object doAround(ProceedingJoinPoint pjp) throws Throwable{System.out.println("我是环绕通知!进入方法");//if(){Object object=pjp.proceed();//一定要执行的方法,假如不执行该方法,被拦截的方法是不会执行的//}System.out.println("我是环绕通知!退出方法");return object;}}??? 其它代码和第一种方法一样。
四、注意
?? ?要将上面2个类交给spring容器管理
??? 需要注意切入点执行的方法的参数
????????????