架构探险之Spring笔记

public interface hello{
 void say();
}

public class HelloImp implements hello{



public void say(){
.....
}

public void sayTo(){


............


}



直接使用jdk的动态代理,每次调用方法都会 进入 InvocationHandler的 invoke方法,如果在invoke中不做特殊处理
所有的方法都会被置入增强(如 before()或者after()方法),如果需要对特定的方法增强需要我们在invoke中作出
判断符合则执行,不合和则跳过

spring 框架为了简化引入了Advisor(切面)类代表着要增强的某个方法  这也是AOP中的核心


即通过切面,将增强类,与拦截匹配条件(Pointcut)组合到一起,然后将这个切面配置到
ProxyFactory中,从而生成代理。

Advisor(切面) 封装了增强Advice与Pointcut


书中实现AOP要点总结

在这里代理一个类由其继承 AspectProxy 覆盖他的方法 
(@Aspect必须注解在AspectProxy型的类上才起作用)
由@Aspect来和AspectProxy型类(子类继承覆盖before ,after等方法)共同作用来实现
AOP功能 首先@Aspect注解的内容表明切点为那种类,使用这样方式可以获取到
类与 AspectProxy型类的关系(一个AspectProxy对应哪种类(多个同种类集合)),
经遍历 也可以确定一个类 会经过哪几个AspectProxy 代理,最终执行代理链方法
获得最终所需的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值