动态代理概述

动态代理

  • 代理

    • 代购
    • 中介等等
  • 代理的作用

    • 功能增强: 在原有的功能上增加了额外的功能,新增加的功能,叫做功能增强
    • 控制访问: 代理类不让你访问目标,例如商家不让访问厂家、
  • 实现代理方式

    • 静态代理:代理类是手工实现的,自己创建一个java类,表示代理类,同时你所需要代理的目标类是确定的

      • 实现简单
      • 容易理解
      • 代理类完成的功能:
        • 功能增强
        • 目标方法调用
      • 缺点: 当代理目标增加了 代理类会成倍增加 一旦被代理的接口修改会影响众多的实现类
    • 动态代理:在静态代理中目标类很多时候,可以使用动态代理,避免静态搭理的缺点

      动态代理中目标类即是很多, 代理类数量可以很少 当你修改了接口中的方法时 不影响代理类

      - 在程序执行过程中,使用jdk的反射机制,创建代理对象,并动态的指定要代理目标类
      - 换句话说: 动态代理是一种创建java对象的能力,
      

两种实现方式

  • jdk动态代理: 使用java反射包中的类和接口实现动态代理的功能
  • cglib动态代理:cglib 通过继承目标类,创建他的子类,在子类中重写父类中同名的方法,实现功能的修改
    • 在很多的框架中使用
      • mybasit,spring 中都有使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值