Spring的AOP是什么?一文详解Aspect、joinpoint、pointcut等概念
首先罗列一些AOP的概念
(切面):横切性关注点的抽象即为切面,它与类相似只是两者的关注点不一样,类是对物体特征的抽象,而切面是横切性关注的抽象。
(连接点):所谓连接点是指那些被连接到的点,在中这些点指的是方法,因为只支持方法类型的连接点...
首先罗列一些AOP的概念
(切面):横切性关注点的抽象即为切面,它与类相似只是两者的关注点不一样,类是对物体特征的抽象,而切面是横切性关注的抽象。
(连接点):所谓连接点是指那些被连接到的点,在中这些点指的是方法,因为只支持方法类型的连接点,实际上还可以是field或类的构造器
(切入点):所谓切入点是指我们要对那些进行拦截的定义
(通知):拦截到之后要做的事情就是通知,通知分为前置通知,后置通知,异常通知,最终通知,环绕通知。
(目标对象):代理的目标对象
weave(织入):将应用到对象并导致proxy对象创建的过程称为织入
(引入):在不修改代码的前提下,可以在运行期为类动态的添加一些方法或field
基于代理的AOP实现(基于java反射机制)
1:创建实现类bean
2:创建代理类
实现 这两个接口
3:定义切入点
指定正则表达式,匹配以结尾的方法
4:定义通知
这里面属性的名字是固定的:代理类,:切入点
5:定义代理工厂

三个的name也是固定的,分别是目标对象,拦截器,和实现了哪些接口
自动代理的AOP实现(基于cglib)
只需要声明通知就可以,注意两个都是固定的,第一个指向代理类,第二个使用正则表达式匹配目标对象
需声明支持自动代理
的AOP实现(基于注解)
1:增加xml支持
2:自动扫面注解和声明使用自动代理
3:编写切面类
@//声明为切面
@//声明为组件
在方法上加
@(value = "( void com.mihe.dao.impl..*())")
表示类中的所有以结尾的方法
























