• Spring、AOP详解


    如何配置AOP查看:Spring、Hello AOP

    1.对于拦截规则@Pointcut的介绍:

    	@Pointcut("execution (* cn.raffaello.service..*.*(..))")
    	private void anyMethod(){} // 声名一个切入点,声名方式比较奇特

    注解:

    // *      返回值类型  *为所有类型的返回值
    // cn.raffaello.service  所拦截的包
    // ..      如果使用..则表示要对拦截的包及下的所有子包进行拦截
    // *.*   类.方法名    所拦截的包下的类.方法
    // (..)   所拦截方法的参数 ..为不限定参数及类型  例(String,Integer,String)


    2.前置通知、后置通知、最终通知、环绕通知、例外通知在Spring处理中存在的位置:


    	@Before("anyMethod()") 
    	public void doAccessCheck(){
    		System.out.println("前置通知");
    	}
    	@AfterReturning("anyMethod()")
    	public void doAfterReturning(){
    		System.out.println("后置通知");
    	}
    	@After("anyMethod()")
    	public void doAfter(){
    		System.out.println("最终通知");
    	}
    	@Around("anyMethod()")
    	public void doAround(ProceedingJoinPoint pjp) throws Throwable{
    		System.out.println("环绕通知前");
    		pjp.proceed(); // proceed()  执行业务方法,可以在此前后添加拦截判断,权限状态等
    		System.out.println("环绕通知后");
    	}
    	@AfterThrowing("anyMethod()")
    	public void doAfterThrowing(){
    		System.out.println("例外通知"); // 异常通知
    	}
    	


    3.拦截特定参数、返回值、异常的方法

    	// 拦截只有一个参数,并且参数类型为String
    	@Before("anyMethod() && args(name)") 
    	public void doAccessCheck(String name){
    		System.out.println("前置通知  Name:"+name);
    	}

    	// 拦截返回值类型是String的方法
    	@AfterReturning(pointcut="anyMethod()",returning="returnValue")
    	public void doAfterReturning(String returnValue){
    		System.out.println("后置通知   return:"+returnValue);
    	}

    	// 拦截异常类型为Exception的异常
    	@AfterThrowing(pointcut="anyMethod()",throwing="ex")
    	public void doAfterThrowing(Exception ex){
    		System.out.println("例外通知 例外:"+ex); // 异常通知
    	}


  • 相关阅读:
    [mysql] 5.1和5.5版本区别
    selenium-51job高级搜索
    selenium-xpath选择操作web元素
    selenium-css选择器高级用法
    selenium-51job自动化测试(css选择器选择元素)
    API测试
    接口测试
    selenium-百度新歌榜
    selenium-frame切换
    selenium等待元素出现和代码抛出异常继续执行
  • 原文地址:https://www.cnblogs.com/raphael5200/p/5114736.html
Copyright © 2020-2023  润新知