zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    db_block_checking与db_block_checksum
    Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;User ID=sa;Initial Catalog=Depot;Data Source=192
    Delphi 获取文件路径
    ip地址查询方法
    SQL Server ADOConnectionString 怎么写
    jQuery 中的 attr
    【转】 JavaScript中With 语句使用方法实例
    【转】JS获取字符串长度(区分中英文)
    【转】ASP.NET 页面之间传递值的几种方式
    jQuery hover事件
  • 原文地址:https://www.cnblogs.com/jccjcc/p/13982765.html
Copyright © 2011-2022 走看看