• Spring之后置通知和异常通知


    一、后置通知:

    创建LogAfter.java来实现后置通知接口:

    package org.ruangong.aop;
    
    import java.lang.reflect.Method;
    
    import org.springframework.aop.AfterReturningAdvice;
    
    public class LogAfter implements AfterReturningAdvice{
    
    	@Override
    	public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable {
    		// TODO Auto-generated method stub
    		System.out.println("后置通知....");
    	}
    
    }
    

      

    将业务类、通知纳入IOC容器。

    在applicationContext.xml文件中添加:

    <bean id="logAfter" class="org.ruangong.aop.LogAfter"></bean>
    <aop:config>
    		<aop:pointcut expression="execution(public void org.ruangong.service.StudentServiceImpl.addStudent(org.ruangong.entity.Student))" id="pointcut"/>
    		<aop:advisor advice-ref="logAfter" pointcut-ref="pointcut"/>
    	</aop:config>
    

      在xml文件中,定义切入点一端,定义通知类另一端,通过pointcut-ref来连接。进行测试即可。

    二、异常通知:

    创建LogExecption.java来实现接口:

    package org.ruangong.aop;
    
    import java.lang.reflect.Method;
    
    import org.springframework.aop.ThrowsAdvice;
    
    public class LogExecption implements ThrowsAdvice{
    	public void afterThrowing(Method method,Object[] args,Object target,Throwable ex)
    	{
    		System.out.println("异常通知:目标对象:"+target+",方法名:"+method.getName()+",方法的参数:"+args.length+",异常类型:"+ex.getMessage());
    	}
    }
    

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

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

      进行测试,在测试之前将实现方法中studentDao=null;

  • 相关阅读:
    ubuntu18.04安装ssh服务
    跳转
    【WinForm】—窗体之间传值的几种方式
    使用jQuery完成复选框的全选和全不选
    VS2015下载安装随笔记录
    关于c#数据类型,类型转换,变量,常量,转义符。
    浅谈表单同步提交和异步提交
    form表单提交和跳转
    2019年8月19日矩阵
    C# WinForm快捷键设置技巧
  • 原文地址:https://www.cnblogs.com/jccjcc/p/13982765.html
Copyright © 2020-2023  润新知