aop编程基石java动态代理

一、静态代理的问题

违反了开闭原则,每代理一个接口,就要修改代理类


二、动态代理的原理

1、对象的生命周期

java文件 ——>字节码文件——>class 对象——>生成对象——>销毁

2、动态代理的过程

Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(), new Class<?>[] { Foo.class }, handler);

不通过java文件,自己生成字节码,然后生成class对象,最后生成代理对象

生成字节码时,已经继承了Proxy父类,实现了要代理的接口;

生成class对象,用到了classloader和字节码

生成代理对象时,把用来增强的处理类InvocationHandler传入

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • https://blog.csdn.net/luanlouis/article/details/24589193 ...
    小陈阿飞阅读 4,415评论 1 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,302评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,815评论 18 399
  • 生活就是生下来,活下去。
    沐心525阅读 1,364评论 0 1
  • 沙尘暴天气 同事要去吕梁,采购欢送聚会,部长还把我叫上了,下了班回来喂了彬彬就打车去了,发现还有个掏钱的供应商,采...
    木木马马阅读 1,324评论 0 0

友情链接更多精彩内容