aop

一个AOP的“拦截”,基本包含
三个方面:
1、切入点 pointcut :现象pointcut接口的public ClassFilter getClassFilter()【返回一个实现了ClassFilter.match方法的类】,public MethodMatcher getMethodMatcher()方法【返回一个实现了MethodMatcher.match方法的类】
2、增强设计 Advice : 实现MethodInterceptor接口的public Object invoke(MethodInvocation methodInvocation)方法,methodInvocation.proceed()则反射为target的方法执行。
3、通知器 Advisor :把pointcut和Advice结合起来(作为Advisor的属性)

在AOP的实现中,使用的主要技术是动态代理(ProxyFactoryBean)。

代理方式:常见两种 JDK的proxy方式或者是CGLIB方式

配置:
配置一个proxyFactoryBean需要设定
target(目标代理对象)和interceptorNames(通知器)。还有proxyInterface(目标代理对象的接口类)。

实现的过程:
代理会生成一个接口和目标代理对象target一致的代理对象proxy,它同样实现了target的方法doSomething。
这样对目标对象的调用,就被代理对象“浑水摸鱼”给拦截处理,
然后根据配置的属性Before、After、Around,对方法进行处理。
preOperation+doSomething+postOperation


代码流程:
proxyFactoryBean通过getBean生产上述的bean。
getBean中(区分singleton和prototype形式),首先对通知器链进行初始化,装载通知器(getBean的形式)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值