发表于: 2017-10-18 20:58:18
1 698
今天完成的事情:
Spring的相关AOP知识。
做了个demo,创建睡觉的目标类
目标实现类
用环绕通知的切面类:
测试:
xml配置文件:
用Junit测试结果:
明天计划的事情:
Spring剩下知识,编写Junit测试代码。
遇到的问题:
切入点表达式定义错误。还有还有不知名的bean错误导致一直测试不成功,最后剑飞师兄maven解救。。。
收获:
一张图帮助理解AOP
目标类:接口+实现
切面类:增强方法。
有接口的用JDK动态代理,无接口用CGLIB字节码。
AspectJ是一个基于Java语言的AOP框架,
AOP切入点表达式支持多种形式的定义规则
常用execution:匹配方法的执行,语法:
execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)
例如
匹配所有类public方法 execution(public * *(..))
匹配指定包下所有类方法 execution(* cn.itcast.dao.*(..))
不包含子包 execution(* cn.itcast.dao..*(..)) ..*表示包、子孙包下所有类
匹配指定类所有方法 execution(* cn.itcast.service.UserService.*(..))
匹配实现特定接口所有类方法 execution(* cn.itcast.dao.GenericDAO+.*(..))
匹配所有save开头的方法 execution(* save*(..))
评论