发表于: 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*(..))



返回列表 返回列表
评论

    分享到