JavaWeb学习-Spring框架-10-Spring aop思想和原理和一些名词解释

本文介绍了Spring框架中AOP(Aspect-oriented Programming)的基本概念和技术实现原理,包括切面编程的思想、Spring AOP的工作机制、动态代理与CGLIB代理的区别,以及AOP中的关键术语如连接点、切入点、通知、引介、目标对象、织入和代理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始进入aop编程学习,Spring 中aop(Aspect-oriented programming 切面编程)是指Spring提供了aop编程的支持。aop是一种思想,叫切面编程,本篇简单学习下aop思想和aop技术实现原理。在具体学习aop之前,我们需要了解几个aop领域地名词含义。

1.aop思想

aop思想,总结来说就是八个字:横向重复,纵向抽取。 下面这个图来理解这八个字。

上面这个图filter这个像一把刀一样切下来,把横向三个servlet中都出现重复的解决乱码的代码,提取出来放到了Filter这层,这个就是aop思想。

 

2.aop原理

Spring能够为容器中管理的对象生成动态代理。


以前我们要使用动态代理,我们需要自己调用下面这个方法
Proxy.newProxyInstance()生成代理对象。

Spring能够帮我们生成代理对象

 

3.Spring实现aop技术

动态代理:

动态代理有一个缺点,被代理对象必须要实现接口才能产生代理对象,如果没有接口,将不能使用动态代理技术。

cglib代理:

Spring为了达到所有对象都能代理,所以引入一个第三方代理技术,cglib代理。
可以对任何类生成代理,代理的原理是对目标对象进行继承代理。如果目标对象被final修饰,那么该类无法被cglib代理。

Spring就是使用这两种代理技术的混合,如果要代理的对象有接口,Spring就会优先使用动态代理技术,如果没有接口,就采用cglib代理。

 

4.AOP名词解释


joinpoint(连接点):所谓连接点是指那些被拦截到的点,在Spring中,这些点指的是方法,因为只支持方法类型的连接点。


pointcut(切入点):所谓切入点是指我们要对哪些Joinpoint进行拦截的定义。


Advice(通知/增强):所谓通知就是指拦截到joinpoint之后所要做的事情就是通知。通知分为前置通知
后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)


Introduction(引介):引介是一种特殊的通知,在不修改类代码的前提下。Introduction可以在运行期为类动态地添加一些方法或者字段。


Target(目标对象):代理地目标对象


Weaving(织入):是指把增强应用到目标对象来创建新地代理对象地过程。Spring采用动态代理织入,
而AspectJ采用编译期织入和类装载期织入。


Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类。


Aspect(切面):是切入点和通知(引介)地结合。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值