zoukankan      html  css  js  c++  java
  • Jdk提供的动态代理示例

    package com.jiaoyiping.util.demo;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    
    /**
     * Created with IntelliJ IDEA.
     * User: 焦一平
     * Date: 2015/7/8
     * Time: 10:54
     * To change this template use File | Settings | File Templates.
     * JDK动态代理示例
     */
    public class JDKDynamicProxyDemo {
        public static void main(String[] args) {
            Business business = new BusinessImpl();
            Business proxy = (Business)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class[]{Business.class}, new BusinessProxy(business));
            proxy.doBusiness();
        }
    }
    
    interface Business {
        void doBusiness();
    }
    
    class BusinessImpl implements Business {
    
        @Override
        public void doBusiness() {
            System.out.println("执行业务方法");
        }
    }
    
    class BusinessProxy implements InvocationHandler {
        private Business business;
    
        public BusinessProxy(Business business) {
            this.business = business;
        }
    
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            System.out.println("before invoke");
            Object result = method.invoke(business, args);
            System.out.println("after invoke");
            return result;
        }
    }
  • 相关阅读:
    Django框架简介
    Django初识
    web前端 html
    python基础概念
    线程
    进程线程区别,和线程初识
    Nginx配置多个服务共用80端口
    Supervisor重新加载配置
    Gunicorn-Django部署
    django.db.utils.OperationalError: (1193, "Unknown system variable 'storage_engine'")
  • 原文地址:https://www.cnblogs.com/jiaoyiping/p/4634537.html
Copyright © 2011-2022 走看看