Spring 中基于 AOP 的 @AspectJ注解实例

@AspectJ 作为通过 Java 5 注释注释的普通的 Java 类,它指的是声明 aspects 的一种风格。通过在你的基于架构的 XML 配置文件中包含以下元素,@AspectJ 支持是可用的。

1.第一步:倒入jar包,跟上个例子包是一样的

aspectjrt.jar

aspectjweaver.jar

aspectj.jar

aopalliance.jar

2.第二步:创建三个类  

  2.1这里是 Logging.java 文件的内容。这实际上是 aspect 模块的一个示例,它定义了在各个点调用的方法。

1 package com.spring.aop2; 2 3 import org.aspectj.lang.annotation.AfterReturning; 4 import org.aspectj.lang.annotation.AfterThrowing; 5 import org.aspectj.lang.annotation.Aspect; 6 import org.aspectj.lang.annotation.Before; 7 import org.aspectj.lang.annotation.Pointcut; 8 9 @Aspect // 定义切面 10 public class Logging { 11 @Pointcut("execution(* com.spring.aop2.Student.*(..))") // 定义切点 12 private void selectAll() { 13 14 } 15 /** 16 * 定义通知方法 17 */ 18 19 @Before("selectAll()") 20 public void beforeAdvice() { 21 System.out.println("----------beforeAdvice-----------"); 22 23 } 24 25 @AfterReturning(pointcut = "selectAll()", returning = "retVal") 26 public void afterReturningAdvice(Object retVal) { 27 System.out.println("Returning:" + retVal.toString()); 28 } 29 30 @AfterThrowing(pointcut = "selectAll()", throwing = "ex") 31 public void AfterThrowingAdvice(IllegalArgumentException ex) { 32 System.out.println("There has been an exception: " + ex.toString()); 33 } 34 35 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppygd.html