首页 > 编程语言 > 详细

Spring之环绕通知

时间:2020-11-16 17:27:23      阅读:18      评论:0      收藏:0      [点我收藏+]

一、创建实现接口类:LogAround.java

package org.ruangong.aop;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

public class LogAround implements MethodInterceptor{

	@Override
	public Object invoke(MethodInvocation invocation) throws Throwable {
		// TODO Auto-generated method stub
		 	Object result = null;
		try{
		 		
		 		System.out.println("用环绕通知实现的前置通知");
		 		//invocation.proceed()之前的代码:前置通知
		 		result = invocation.proceed();
		 		//invocation.proceed()之后的代码;后置通知
		 		System.out.println("用环绕通知实现的后置通知");

		 	}catch(Exception e){
		 		System.out.println("用环绕通知实现的异常通知");
		 	}
		return result;
	}

}

  在try{}中,invocation.proceed()之前的代码是前置通知,invacation.proceed()之后的代码是后置通知。

catch中的代码是异常通知:

将业务类和通知类写入ioc容器:

<!-- 环绕通知 -->
	<bean id="logAround" class="org.ruangong.aop.LogAround"></bean>
<aop:config>
		<aop:pointcut expression="execution(public void org.ruangong.service.StudentServiceImpl.addStudent(org.ruangong.entity.Student))" id="pointcut"/>
		<aop:advisor advice-ref="logAround" pointcut-ref="pointcut"/>
	</aop:config>

  测试类中进行测试:

 

 技术分享图片

异常通知测试:

技术分享图片

 

Spring之环绕通知

原文:https://www.cnblogs.com/jccjcc/p/13985619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!