加入收藏 | 设为首页 | 会员中心 | 我要投稿 吉安站长网 (https://www.0796zz.com.cn/)- 科技、图像处理、媒体智能、办公协同、操作系统!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

加大了对COVID-19相关知识产权的攻击力度

发布时间:2021-01-30 19:23:42 所属栏目:传媒 来源:互联网
导读:PS :多个切面的情况下,可以通过@Order指定先后顺序,数字越小,优先级越高。 3 JDK 动态代理和 CGLIB 代理区别 JDK 动态代理 与 CGLib动态代理均是实现Spring AOP的基础,它们的实现方式有所不同。 3.1 JDK动态代理 特点 Interface:对于JDK动态代理,业务

PS :多个切面的情况下,可以通过@Order指定先后顺序,数字越小,优先级越高。

3 JDK 动态代理和 CGLIB 代理区别

JDK 动态代理 与 CGLib动态代理均是实现Spring AOP的基础,它们的实现方式有所不同。

3.1 JDK动态代理

特点

Interface:对于JDK动态代理,业务类需要一个Interface。

Proxy:Proxy类是动态产生的,这个类在调用 Proxy.newProxyInstance() 方法之后,产生一个Proxy类的实例。实际上,这个Proxy类也是存在的,不仅仅是类的实例,这个Proxy类可以保存在硬盘上。

Method:对于业务委托类的每个方法,现在Proxy类里面都不用静态显示出来。

InvocationHandler:这个类在业务委托类执行时,会先调用invoke方法。invoke方法在执行想要的代理操作,可以实现对业务方法的再包装。

总结:

JDK动态代理类实现了InvocationHandler接口,重写的invoke方法。

JDK动态代理的基础是反射机制(method.invoke(对象,参数))Proxy.newProxyInstance()

3.2 CGLib动态代理

特点:

使用字节码处理框架ASM,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。

CGLib创建的动态代理对象性能比JDK创建的动态代理对象的性能高不少,但是CGLib在创建代理对象时所花费的时间却比JDK多得多,所以对于单例的对象,因为无需频繁创建对象,用CGLib合适,反之,使用JDK方式要更为合适一些。同时,由于CGLib由于是采用动态创建子类的方法,对于final方法,无法进行代理。

注意:

JDK的动态代理只可以为接口去完成操作,而 CGlib 它既可以为没有实现接口的类去做代理,也可以为实现接口的类去做代理。

3.3 代码实现部分

公共代码 :

(编辑:吉安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读