摘要:
JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现 阅读全文
摘要:
场景交代 在springboot中添加拦截器进行权限拦截时,需要获取请求参数进行验证。当参数在url后面时(queryString)获取参数进行验证之后程序正常运行。但是,当请求参数在请求体中的时候,通过流的方式将请求体取出参数进行验证之后,发现后续流程抛出错误: Required request 阅读全文
摘要:
aop的这几个注解的使用非常常见,但是他们的执行顺序,以及作为我们进入核心代码前的校验,是如何在校验失败不然他进入核心方法的?博客上确实有不少讲解的很详细,我在结尾也会推荐几篇。这里就几个重要的点和不明的点做下说明,前事不忘后事之师! 1.AOP的基本概念 切面(Aspect) :通知(advice 阅读全文
摘要:
Spring AOP 用户可能会经常使用 execution 切入点指示符。执行表达式的格式如下: 1 2 3 execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-patte 阅读全文
摘要:
StopWatch是位于org.springframework.util包下的一个工具类,通过它可方便的对程序部分代码进行计时(ms级别),适用于同步单线程代码块。 正常情况下,我们如果需要看某段代码的执行耗时,会通过如下的方式进行查看: public static void main(String 阅读全文
摘要:
import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.reflect.CodeSignature;import java.util.HashMap;import java.util.Map; public class 阅读全文