SpringAOP
爱吃羊的大灰狼
这个作者很懒,什么都没留下…
展开
-
从零到实现自身AOP框架
在阅读本文前首先请确保会java的动态代理技术springAOP大家都知道使用的动态·代理技术,当然这个技术是根本,其实在Spring在处理AOP的时候还使用了链式处理举个例子 例如一个类 有多个前置增强 (即全都在代理目标类方法前执行)又有多个后置增强(全都在方法目标类的后面执行) 如何确保前置增强执行完后再执行代理目标类方法 最后在执行后置增强呢,答案是使用链式处理,先理解下链式处理 ...原创 2018-07-17 16:33:28 · 238 阅读 · 0 评论 -
Spring之手写Aop(1)
aop,面向切面编程,是面向对象的一种补充,手写之前请确保有一下基础知识,分别为java注解的基本使用,java动态代码,了解spring框架,了解beanPostProcessor的作用,以及掌握java的适配器模式。为了简化开发量,这里借助spring。开发的出的框架遵守aop联盟,实现方法与spring自带的Aop实现方式略有不同,但原理相同在实现方面,另辟道路,通过注解的方式表明 ...原创 2018-08-30 12:06:19 · 752 阅读 · 0 评论 -
Spring之手写 Aop(4)
上几篇提到分别提到了方法拦截器,和advice等通知,在上面的过程中,框架使用者通过实现MethodBeforeAdvice等接口来来表示在操作某个方法之前或之后应该做什么,而我们的程序中通过方法拦截器来表示在方法之前或之后应该做什么,两者不一样?该如何解决呢? 不错,这时候就需要用到java的设计模式——适配器模式了首先定义适配器接口,明确适配器的功能package com.aut...原创 2018-08-30 12:02:47 · 257 阅读 · 0 评论 -
Spring之手写Aop(6)
本章将主要讲解Aopsupprot 和JDkDynamicProxy,写到这里这个简易的aop框架也就要结束了,真个项目我也上传地址为https://github.com/skybluehhx/MyAop.git.首先看一下AopSupport的实现package com.support;import com.MethodConfig;import com.ProxyConfig;...原创 2018-08-30 12:12:08 · 310 阅读 · 0 评论 -
Spring之手写Aop(5)
前面我们已经对MethodInterceptor,advice等类给出了介绍,并给出了具体的实现,接下来的问题时框架如何知道用户启动aop换句话说 ,框架如何知道用户能够对方法启动了代理,答案就是注解,这里借助一个beanPostProcessor+java注解(EnableAop,interceptorAdvice前面已经做了介绍,这里不再重复)的方式来实现,利用beanPostProcesso...原创 2018-08-30 11:51:13 · 317 阅读 · 0 评论 -
Spring之手写Aop(2)
上篇博文中涉及到两个很重要的注解,EnableAop 和InterceptorAdvice 具体的定义如下 package com.annotations;import org.aopalliance.aop.Advice;import java.lang.annotation.ElementType;import java.lang.annotation.Retention...原创 2018-08-29 19:16:20 · 196 阅读 · 0 评论 -
使用Aop实现自己的异常处理器
spring的aop中提供了强大的处理机制,今天就利用spring的@Around注解实现自己的异常处理机制,使我们的代码变得更加简洁,避免代码重复使用try catch, 首先定义一个切面,对我们感兴趣的方法尽行拦截package com;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.a...原创 2018-08-21 11:30:21 · 635 阅读 · 0 评论 -
Spring之手写Aop(3)
到了这里也到了一个很重要的部分了,使用aop本质上是对方法使用之前,或之后添加自己的逻辑,而如何具体实现,有Aop联盟就抽象出了方法拦截器,用来执行在方法之前或之后的逻辑,而如何来调用这些拦截器,拦截器的执行顺序如何呢?这有引出了方法调用器(我自己取的, 也就是MethodInvocation)首先来看一下方法拦截器的定义 // Source code recreated f...原创 2018-08-30 12:11:33 · 497 阅读 · 0 评论