
AOP
文章平均质量分 79
你猜我猜不猜你猜不猜
java程序猿
展开
-
AOP源码解析(五)获取代理
确定了使用哪种代理方式后便可以进行代理的创建了(1)JDK代理使用示例。创建业务接口,业务对外提供的接口,包含着业务可以对外提供的功能。转载 2016-11-07 23:59:06 · 926 阅读 · 0 评论 -
AOP源码解析(一)实现动态代理
动态AOP使用示例面向对象编程有一些弊端,当需要为多个不具有继承关系的对象引入同一个公共行为时,例如日志,安全检测等,我们只有在每个对象里引入公共行为,这样程序中就产生了大量的重复代码,所以有了面向对象编程的补充,面向切面编程(AOP'),AOP所关注的方向是横向的,不同于OOP的纵向。下面是一个AOP的示例(1)创建用于拦截的bean。在实际工作中,此bean可能是满足业务需要的核心转载 2016-10-30 23:27:49 · 2200 阅读 · 0 评论 -
AOP源码解析(二)创建AOP代理
上文中讲解了通过自定义配置完成了对AnnotationAwareAspectJAutoProxyCreator类型的自动注册,那么这个类到底做了什么工作来完成AOP的操作呢?首先我们看看AnnotationAwareAspectJAutoProxyCreator的层次结构public abstract class AbstractAdvisorAutoProxyCreator extends Ab转载 2016-10-31 22:09:31 · 860 阅读 · 0 评论 -
AOP源码解析(三)增强器的获取
普通增强器的获取逻辑通过getAdvisor方法实现,实现步骤包括对切点的注解的获取及根据注解信息生成增强。 public Advisor getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aif, int declarationOrderInAspect, String aspectN转载 2016-10-31 23:17:49 · 1004 阅读 · 0 评论 -
AOP源码解析(四)寻找匹配的增强器
前面的函数中已经完成了所有增强器的解析,但是对于所有增强器来讲,并不一定都适用于当前的Bean,还要挑取除适合的增强器,也就是满足我们配置的通配符的增强器。具体的实现在findAdvisorsThatCanApply中。 public static List findAdvisorsThatCanApply(List candidateAdvisors, Class clazz) {转载 2016-11-01 23:12:32 · 840 阅读 · 0 评论