当前位置:首页 > CN2资讯 > 正文内容

AOP静态代理与动态代理

3天前CN2资讯


AOP

面相切面编程,是作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理,日志,缓存,异常等。


AOP代理分类

静态代理和动态代理


静态代理

静态代理就是AOP框架会在编译阶段将Aspect植入java字节码中,生成AOP代理类,在运行的时候,是直接运行其增强的AOP对象,因此也称为编译时增强(反编译*.class可以发现和源代码不一样);AspectJ就是典型的静态代理增强;


动态代理

动态代理就是说AOP框架不会去修改字节码,而是在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调对方的方法;Spring AOP使用的是动态代理


Spring AOP中动态代理的分类

JDK动态代理和CGLiB动态代理


JDK动态代理

通过反射来接受被代理的类,并且要求被代理的类必须实现一个接口;

JDK动态代理的核心是InvocationHandler接口和Proxy类


CGLIB动态代理

如果目标类,没有实现接口,那么spring AOP会选择使用CGLIB来动态代理目标类;

CGLIB(Code Generation Library)是一个代码生成的类库,可以再运行时动态的生成某个类的子类;

注意CGLiB是通过集成的方式做的动态代理,因此如果某个类是final,是无法使用CGLIB动态代理的;

同理,由于是继承方式,如果是 static方法,private方法,final方法等描述的方法是不能被代理的


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/23991.html

    分享给朋友:

    “AOP静态代理与动态代理” 的相关文章

    如何在Linux中指定DNS服务器设置教程

    在开始讨论如何在Linux系统中指定DNS之前,我们需要明白DNS服务器的作用与重要性。DNS,全称域名系统,是将人类易读的域名转换为计算机能够理解的IP地址的系统。想象一下,如果没有DNS,我们每次访问一个网站都得记住复杂的数字IP地址,那将是多么麻烦的一件事。因此,选择一个合适的DNS服务器,不...

    iHerb优惠码使用指南:最大化你的购物折扣

    在现代生活中,网络购物已经成为很多人日常消费的一部分,尤其是像iHerb这样的电商平台,提供了丰富的天然保健品和生活必需品。对于我们消费者来说,iHerb优惠码就是一个能够让购物更加实惠的绝佳工具。 iHerb优惠码是一种特殊的代码,用户在结账时输入这些代码,就可以享受相应的折扣。无论是新用户还是老...

    如何查看域名是否被墙:检测工具与方法指南

    域名被墙是一个对很多网站管理员和用户来说都比较陌生的概念。简单来说,当一个网站的内容被认为敏感或者违反某些规定时,防火墙就会把这个域名屏蔽。即使用户通过输入域名试图访问,DNS 解析也许正常,但实际上网站却无法顺利加载。在国内用户访问国外网站或者国外用户尝试访问国内网站时,情况尤为明显,就好像在国际...

    APT攻击解析:如何应对高级持续性威胁

    APT攻击,或称为高级持续性威胁,是一种复杂的网络攻击形式。这种攻击的发起者通常是具有高度组织性和专业性的攻击者,可能是国家支持的黑客组织,或者其他有目的的恶意实体。他们的目标不仅仅是短期内造成损害,而是着眼于更长远的战略性目标,比如窃取国家机密、企业的核心技术或其他商业秘密。这种攻击对目标组织的声...

    China Telecom CN2 GIA:提供极速稳定的全球互联网接入服务

    在当今的网络时代,能够提供稳定和高效的网络连接变得尤为重要。China Telecom CN2 GIA可以说是一个现代化网络服务的典范。作为中国电信推出的一项优质网络服务,它专注于为用户提供更快、更可靠的连接,从而满足不同领域的需求。 首先,CN2 GIA的定义与背景十分重要。CN2 GIA(Chi...

    HostHatch怎么样?全面评测云服务提供商的性能与性价比

    我们今天要聊聊HostHatch,这个相对年轻却迅速崛起的云服务提供商。简单来说,HostHatch成立于不久前,目标是为用户提供高效、经济的托管服务。他们的理念十分清晰,就是希望能让更多的人无需复杂的技术知识,也能轻松享受到稳定高效的服务器服务。 HostHatch的创始团队由一群充满激情的科技爱...