Java反射机制与动态代理
来源:互联网 发布:python httplib2 编辑:程序博客网 时间:2024/05/16 08:31
反射机制:动态获取类的信息以及动态调用对象的方法的功能称为java语言的反射机制。在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
动态代理:为其它对象提供一种代理以控制对这个对象的访问,即访问者——代理对象——真实对象
如下示例是通过反射技术创建HelloServiceImp的实例对象,然后调用sayHello()方法:
Object service = Class.forName(HelloServiceImp.class.getName()).newInstance();
Method method = service.getClass().getMethod("sayHello", String.class); method.invoke(service, "reflect : hello world!");反射调用的优点是提高灵活性和可配置性,降低模块耦合。缺点是影响性能。
接下来介绍java的动态代理:
1、JDK反射机制提供的代理
JDK的动态代理机制只能代理实现了接口的类(这是真正的服务提供者),然后需要编写代理类提供绑定和代理方法如上图。
测试方法如下:
//3.JDK动态代理
HelloServiceProxy helloServiceProxy = new HelloServiceProxy(); HelloService JDKProxy = (HelloService) helloServiceProxy.bind(new HelloServiceImp()); DKProxy.sayHello("hello world!");
2、CGLIB代理
CGLIB是针对类来实现代理的,对指定的目标类生成一个子类,并覆盖其中方法实现增强,测试方法如下:
//4.CGLIB代理 CGLIBHelloService cglibHelloService = new CGLIBHelloService(); HelloService proxy = (HelloService) cglibHelloService.getInstance(new HelloServiceImp()); proxy.sayHello("hello world!");
阅读全文
0 0
- java反射机制与动态代理
- Java反射机制与动态代理
- JAVA的反射机制与动态代理
- JAVA反射机制与动态代理
- java反射机制与动态代理
- java反射机制与动态代理
- java反射机制与动态代理
- JAVA的反射机制与动态代理
- JAVA反射机制与动态代理
- Java 动态代理与反射机制
- JAVA反射机制与动态代理
- JAVA反射机制与动态代理
- Java反射机制与动态代理
- Java反射机制与动态代理
- JAVA 反射机制与动态代理
- 反射机制与动态代理
- java反射机制&动态代理
- Java反射机制动态代理
- oracle表分区
- Openstack使用ISO镜像启动云主机
- Python中常用的注释
- 如何查看文件支持的CPU架构
- 按字节截取字符串
- Java反射机制与动态代理
- Maven安装本地jar
- git detached 解决
- 【java面试】算法篇之堆排序
- gradle自定义task
- 获得函数参数名
- A20平台,重启路由器交换机后设备就上不了网了(以太网)
- AndroidStudio好用的插件ParcelableGenerator、GsonFormat、ButterKnife Zelezny、Generate SelectorDrawable
- APP升级版本比较