zoukankan      html  css  js  c++  java
  • JAVA 动态代理

    被代理类

    package com.chirs.Demo2;

    public class UserServiceImpl implements UserServices {

    public void add() {
    System.out.println("增加了一个用户");
    }

    public void delete() {
    System.out.println("删除了一个用户");
    }

    public void update() {
    System.out.println("修改了一个用户");
    }

    public void query() {
    System.out.println("查询了一个用户");
    }
    }

      

      代理类

    package com.chirs.Demo3;

    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;

    public class ProxyInvocationHandle implements InvocationHandler {
    // 被代理的接口
    private Object object;

    public void setObject(Object object) {
    this.object = object;
    }

    // 获得代理类
    public Object getProxy() {
    return Proxy.newProxyInstance(this.getClass().getClassLoader(),
    object.getClass().getInterfaces(), this);
    }

    // 调用处理程序
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    log(method.getName());
    Object result = method.invoke(object, args);
    return result;
    }

    public void log(String msg) {
    System.out.println("调用了 " + msg + " 方法");
    }
    }

    调用类
    package com.chirs.Demo3;

    import com.chirs.Demo2.UserServiceImpl;
    import com.chirs.Demo2.UserServices;

    public class Client {
    public static void main(String[] args) {
    // 真实角色
    UserServiceImpl userService = new UserServiceImpl();
    // 代理角色 不存在
    ProxyInvocationHandle pih = new ProxyInvocationHandle();
    // 设置要代理的对象
    pih.setObject(userService);
    UserServices proxy = (UserServices) pih.getProxy();
    proxy.delete();
    }
    }
  • 相关阅读:
    test3
    test2
    test
    移动布局之流式布局
    移动端布局
    如何将本地项目上传到Github上
    node: 使用res.send()时报错RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: *
    字体图标
    pip install Wikipedia2Vec时报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4 in position 41: invalid continuation byte
    tensorflow与keras版本不匹配问题
  • 原文地址:https://www.cnblogs.com/wooroc/p/13558762.html
Copyright © 2011-2022 走看看