java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

Spring AOP
五种通知:前置通知后置通知返回通知异常通知环绕通知
首先,配置使用AOP的环境:
需要将以下几个包导入到工程中:
org.springframework.aop-3.1.1.RELEASE.jar ---- ----spring 的面向切面编程,提供AOP(面向切面编程)实现
org.springframework.aspects-3.1.1.RELEASE.jar ---- ----spring 提供对 AspectJ 框架的整合
aopalliance.jar
aspectjweaver-1.7.4.jar
aspectjrt-1.7.4.jar
前置通知:
eg:
新建一个配置文件applicationContext.xml:

表示通过注解配置com.zjy.spring.aop包下的所有类
表示让切面类能够自动装配
建立一个日志类:CalculatorLogging.java

其中
@Aspect注解表示这个类作为一个切面
@Component注解表示这个类同样也要放在IOC容器中
@Before注解表示这个方法是用来作为前置通知,也就是在它签名中所标识的具体方法调用之前就会进入这个方法
("execution(public int com.zjy.spring.aop.Calculator.add(int,..))")表示所有公有的返回值是int类型的属于com.zjy.spring.aop包下的类Calculator中add方法
其中,(int,...)表示这个方法第一个参数是int型,..表示后面的参数数量任意类型任意
打印结果:

后置通知:
使用方法与前置差不多

@After注解表示这个方法是用来作为后置通知,也就是在它签名中所标识的具体方法调用之后才会进入这个方法
返回通知:

Spring-AOP的5种通知-飞网

@AfterReturning注解表示这个方法是用来作为返回通知,也就是在它签名中所标识的具体方法调用并返回之后才会进入这个方法
若方法出现执行中出现异常, 则不会进入到返回通知,但依然会进入前置和后置value属性表示所装配的类和方法
value属性表示所装配的类和方法
returning表示返回的结果
并且要在方法参数里面添加一个"Object result",这个变量名要与刚才returning所匹配的名字一致!
异常通知:

Spring-AOP的5种通知-飞网

@AfterThrowing注解表示这个方法是用来作为异常通知,也就是在它签名中所标识的具体方法调用并出现异常之后才会进入这个方法
并且要在方法参数里面添加一个"Exception ex",这个变量名要与刚才throwing所匹配的名字一致!
value属性表示所装配的类和方法
throwing表示返回的异常对象
环绕通知:

Spring-AOP的5种通知-飞网

@Around注解表示这个方法是用来作为环绕通知,也就是在它签名中所标识的具体方法调用会进入这个方法
环绕通知其实就相当于一个代理,可以在里面写上前置、后置、异常或返回等
环绕通知的日志方法必须要有返回值,并且以ProceedingJoinPoint pjoinpoint作为参数
pjoinpoint.proceed()表示执行它所受理的方法,并返回执行结果
注:本例中所用到的jar包和截图见文末附件
本文出自 “11179738” 博客,请务必保留此出处http://11189738.blog.51cto.com/11179738/1743383
spring五大通知‍‍前置通知后置通知返回通知异常通知环绕通知AOP切面编程

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。