Spring aop 笔记
好久没有写代码了,最近都忙着新项目的打包,测试,写起代码来也没有状态,所以趁机回忆一下spring aop的一些内容。
aop的几个基本概念
1、joinpoint(接入点) : 我理解为类中的某个成员函数
2、advice(通知):是接入点的执行代码,执行的具体逻辑
3、pointcut(切入点):理解为joinpoint的集合
4、aspect(方面):pointcut和advice结合起来就是aspect,代表的更多是对象间横向的关系
5、instroduct(引入):为对象引入附加的方法或属性,从而达到修改对象结构的目的。
?
aop的主要技术依赖是代理技术,spring应该使用了JDK的动态代理和CGLIB的动态代理机制,JDK的动态代理可能在1.3之前的效率不是很好,所以Spring在后续使用了CGLIB
spring中aop相关的接口
advice相关接口:
MethodBeforeAdvice(方法前通知)/AfterReturnningAdvice(方法返回通知)/MethodInterceptor(方法拦截)
?
pointcut相关接口:
Pointcut
spring提供的相关实现,StaticMethodMatcherPointcut,DynamicMethodMatcherPointcut,NameMatchMethodPointcut等等
?
aspect相关的我想应该算Advisor吧,主要是DefaultPointcutAdvisor这个类
?
?
?