http://zywang.iteye.com/blog/974226
第一种
1 |
<aop:aspectj-autoproxy/> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Component; /** * 基于注解的AOP日志示例 * @author ZYWANG 2011-3-24 */ @Component @Aspect public class AopLog { @Pointcut("execution (* com.iflysse.school.services.impl.*.*(..))") public void pointcut(){} //方法执行前调用 @Before("pointcut()") public void before() { System.out.println("before"); } //方法执行的前后调用 @Around("pointcut()") public Object around(ProceedingJoinPoint point) throws Throwable{ System.out.println("begin around"); Object object = point.proceed(); System.out.println("end around"); return object; } } |
————————————–
第二种
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import org.aspectj.lang.ProceedingJoinPoint; /** * 基于配置文件的AOP日志示例 * @author ZYWANG 2011-3-24 */ public class AopLog { //方法执行的前后调用 public Object runOnAround(ProceedingJoinPoint point) throws Throwable{ System.out.println("begin around"); Object object = point.proceed(); System.out.println("end around"); return object; } } |
Xml代码
1 2 3 4 5 |
<aop:config> <aop:aspect ref="aopLog"> <aop:around method="runOnAround" pointcut="execution (* com.zywang.services.impl.*.*(..))"/> </aop:aspect> </aop:config> |
第三种:
http://www.blogjava.net/javadragon/archive/2006/12/03/85115.html