JDK动态代理的底层实现原理

**

代理模式定义

**
存在一个代理对象,并且这个代理对象持有真实对象的引用,以实现对真实对象的访问控制。

举个例子,现在公司一般都有VPN,使我们在家也能访问到公司的内网(比如连接公司的数据库等),实现居家办公。这里VPN相当于一个代理,而公司内网相当于被代理对象,也就是真实对象。我们不能直接访问公司内网(真实对象),但是我们通过VPN(代理对象),输入身份信息,确认无误后就可以访问到公司内网。这就是代理模式的作用—-控制对象的访问。
代理模式的分类
代理分为静态代理和动态代理;

静态代理
该代理对象持有被代理对象的引用,客户端通过调用代理对象的方法间接实现调用真实对象的方法。代理对象可以在调用真实对象的方法前面加入一些操作:比如身份验证,如果身份验证没有通过,则不能访问真实对象的方法,否则可以调用真实对象的方法;也可以在调用真实对象方法后,加入一些操作,比如记录访问日志。

真实对象接口,提供两个服务方法

你可能感兴趣的:(JDK动态代理的底层实现原理)