
Spring 切面
文章平均质量分 71
Spring 切面
诗人不写诗
当你足够努力时,全世界都会给你让路
展开
-
AOP-1 背景知识
AOP:Aspect Oriented Programming,中文大多数人翻译为面向切面编程AOP编程是一种思想,是OOP之后出现的一种补充思想,OOP将编程的方式定义为面向一个个class,通过封装、继承、多态等手段,将领域建模通过class得以实施。原创 2018-08-15 00:38:18 · 457 阅读 · 1 评论 -
AOP-2 Spring AOP基本概念和设计哲学
对于切面使用者来说,需要关心的就是Pointcut和Advice,Pointcut扫描出所有要处理的地方,Advice定义切入逻辑,这2个就可以满足几乎所有切面使用者的需求。其他的概念几乎都是实现层面的概念,是深入理解切面才需要了解的。原创 2021-05-07 09:02:13 · 719 阅读 · 1 评论 -
AOP-3-编程方式使用Spring切面
pointcut:切点,连接点的选取规则,如com.x.y.A类里的所有方法。aspect:切面,切面是advice和Pointcut的组合。切面是一种思想,需要程序来实现。advice:通知,就是切进来的逻辑。joinpoint:连接点,方法。原创 2022-12-01 19:55:31 · 219 阅读 · 0 评论 -
AOP-4.1-Spring @Pointcut使用
在Spring中,使用@Pointcut可以用来定义切点,也就是要切哪些方法。这里容易混淆的是this和target的使用,this是在运行时去比对最终的代理对象是否和表达式定义的类型是否匹配,这个处理要等到运行时才能完成。而target是直接根据表达式定义找出类型,这个处理在编译器就能完成。原创 2022-12-01 21:09:13 · 1167 阅读 · 0 评论 -
AOP-4.2-Spring基于动态代理的AOP
AOP的实现分为静态织入和动态代理,Spring默认使用的就是动态代理,但是动态代理有一些特点,会导致使用上的一些问题。动态代理通常分为jdk动态代理和cglib动态代理,jdk动态代理采用的是反射的技术,cblib采用的方式是修改class文件字节码的方式,所以,就运行时效率而言,cglib会有优势。2者的共同点就是聚合了目标对象,也就是说,无论怎么代理,最终他们都会调用目标对象的方法。比如你在类的某个方法上使用了@Transactional注解,这个时候,Spring会给这个类生成一个代理类,所有注入这原创 2021-09-25 15:36:51 · 213 阅读 · 1 评论 -
AOP-5-Spring对AOP的实现
Spring对AOP实现的模式分为2种,一种是代理,一种是AspectJ,这种区分方式是直接使用实现方式区分的。动态代理我们都知道在Spring中分为JDK动态代理和cglib动态代理,JDK动态代理自不用说,由Java运行时环境提供,而对于cglib,Spring将他封装在了spring-core中,足以证明动态代理在Spring中处于一个基础+核心的地位,所以我们更加有必要搞清楚Spring是如何使用cglib的,而对于Spring AOP而言,则是单独的作为一个模块出现:spring-aop。JDK动原创 2022-12-03 17:23:56 · 873 阅读 · 0 评论