面试题——spring AOP相关

本文详细介绍了Spring AOP的概念,包括面向切面编程、代理模式的静态和动态实现,以及Spring AOP中的通知、切点、目标对象和代理。解释了AOP如何通过代理对目标类进行增强,并探讨了JDK动态代理和Cglib代理的适用场景。同时,阐述了切面的组成,包括连接点、切入点、通知和切面的定义。最后,提到了Spring AOP中通知的五种类型及其执行时机。
摘要由CSDN通过智能技术生成

什么是AOP?

AOP (Aspect Oriented Programing) 称为:面向切面编程,它是一种编程思想。在程序运行的时候,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。

基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,对原有业务方法进行增强 !

AOP和代理模式

代理模式:分为静态代理、JDK动态代理、cglib代理
1.静态代理
代理类和被代理类实现共同的接口(或继承),代理类中存有指向被代理类的引用,实际执行时通过调用代理类的方法、实际执行的是被代理类的方法。
2.jdk动态代理
必须有接口和实现类(目标类),通过工具类Proxy生产接口对应的代理类,从而对目标类进行增强。
3.Cglib代理
Cglib代理生成的代理类是目标类的子类,所以目标类不能使用final修饰。
AOP
Spring AOP通过代理的方式,对目标类进行增强。
Spring aop底层默认使用JDK动态代理(必须有接口),通过配置可以修改成cglib代理。

静态代理:需要手动创建代理类,在new 代理类,获得代理实例
1.目标类: class 目标类 implements 接口{ 方法1(); 方法2(); }
2.代理类: class 代理类 implements 接口{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值