代理接口
来源:互联网 发布:淘宝隐藏导航代码 编辑:程序博客网 时间:2024/05/22 03:13
18.1新建一个Demo2的接口;
package com.eduask.entity4;
//定义Demo2的接口;
public interface Demo2 {
void id();
void name();
void pwd();
}
18.2新建一个Demo2Impl类实现Demo2的接口;
package com.eduask.entity4;
//定义一个Demo2Impl的实现Demo2接口;
public class Demo2Impl implements Demo2 {
@Override
public void id() {
System.out.println("Demo2 id");
}
@Override
public void name() {
System.out.println("Demo2 name");
}
@Override
public void pwd() {
System.out.println("Demo2 pwd");
}
}
18.3 新建一个代理LogDynamicProxy类;
package com.eduask.entity4;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class LogDynamicProxy implements InvocationHandler {
private Object targer;//定义一个代理对象;
//设置代理方法,并设置对象值;
public static Object getDynamicProxy(Object obj){
LogDynamicProxy proxy=new LogDynamicProxy();
proxy.targer=obj;
//返回新生成实例化; 参数1 对象加载 参数2 对象接口 参数3 对象;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(), proxy);
}
//重写invoke方法;
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
//输出获得方法的名字;
System.out.println("你执行了"+method.getName()+"的方法");
//获得方法的执行;
Object obj=method.invoke(targer, args);
return obj;
}
}
18.4 新建一个TestDemo2
package com.eduask.entity4;
//使用动态代理测试;
public class TestDemo2 {
public static void main(String[] args) {
Demo2 d2=new Demo2Impl();
Demo2 proxy=(Demo2) LogDynamicProxy.getDynamicProxy(d2);
proxy.id();
proxy.name();
proxy.pwd();
}
}
18.5 程序运行如下:
你执行了id的方法
Demo2 id
你执行了name的方法
Demo2 name
你执行了pwd的方法
Demo2 pwd
- 代理接口
- 接口代理
- jdk动态代理接口
- Proxy动态代理接口
- Java复习--接口、代理
- 代理模式(接口隔离)
- 接口代理模式
- 接口--代理设计模式
- Mybatis代理接口
- spring AOP 代理(代理接口)
- 动态代理不通过接口,CGLIB动态代理
- JDK动态代理(接口的代理)
- JDK Proxy实现接口代理
- httpClient 设置代理请求接口
- 纯接口的动态代理
- 基于接口的动态代理
- java代理 InvocationHandler接口实现
- [mybatis]Mapper接口代理开发
- iOS 获取沙河路径
- 关于File.expand_path
- Spark DataFrames DataSet
- (三)2.1 mysql 数据库对象优化之--数据库引擎选择
- 洗牌----网易有道2017内推编程题还未完成。
- 代理接口
- dialog 的 immerse mode
- 实现两个下拉选框内容不一致的JS代码
- 数据库存储对象数据注意点
- ubuntu_Light Table字体及相关设置及使用
- msp430g2533之uart
- Spring核心面向接口编程小程序
- iOS base64 加密解密 通用类
- 移除ArrayList中的重复元素