Java-JDK动态代理(AOP)使用及实现原理分析

第一章:代理的介绍

介绍:我们需要掌握的程度

动态代理(理解) 基于反射机制

掌握的程度:

1.什么是动态代理?

2.动态代理能够做什么?

后面我们在用Spirng和Mybatis的时候,要理解怎么使用的

1.什么是代理?
代理,在我们日常生活之中就有体现,代购,中介,换ip,商家等等.

比如有一家美国的大学,可以对全世界招生.留学中介(代理 )

留学中介(代理):帮助这家美国的学校招生,中介是学校的代理中介是代替学校完成招生功能
代理特点

中介和代理他们要做的事情是一致的:招生
中介是学校代理,学校是目标
家长-------->中介(学校介绍,办理入学手续)---------->美国学校
中介是代理,收取费用
2.为什么要找中介
为什么要找中介?
1.中介是专业的,方便.
2.家长现在不能自己去找学校。家长没有能力访问学校.或者美国学校不接收个人来访

买东西都是商家卖, 商家是某个商品的代理, 你个人买东西,肯定不会让你接触到厂家的.

第二章:静态代理

在这里插入图片描述
2.1 使用代理模式的作用
功能增强:在你原有的功能上,增加了额外的功能.新增加的功能,叫做功能增强
控制访问:代理类不让你访问目标,例如商家不让用户访问厂家
2.2 静态代理的优缺点
我们再次总结一下静态代理的优缺点

优点:

实现简单
容易简单
确定:当你的项目中,目标类的代理类很多的时候,有一下的缺点

当目标类增加了,代理类可能也需要成倍的增加
当你的接口中功能在增加了,或者修改了,会影响众多的实现类,厂家类,代理都需要修改,影响比较多.

动态代理的实现:

jdk动态代理(理解):使用java反射包中的类和接口实现动态代理的功能,反射包java.lang.reflect,里面有三个类:InvocationHandler,Method,Proxy
cglib动态代理(了解): cglib是第三方的工具库,创建代理对象
cglib的原理是继承,cglib通过继承目标类,创建它的子类,在子类中
重写父类中同名的方法,实现功能的修改。
因为cglib是继承,重写方法,所以要求目标类不能是fina1的,方法也不能是final的。cglib的要求目标类比较宽松,只要能继承就可以了。cglib在很多的框架中使用,
比如mybatis,spring框架中都有使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值