zoukankan      html  css  js  c++  java
  • java实现动态代理切面编程

    package proxy;

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

    public class MyInvocation implements InvocationHandler{
    Object obj;

    public void setObj(Object obj) {
    this.obj = obj;
    }


    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

    Parameter[] parameters = method.getParameters();
    for (Parameter parameter : parameters) {
    parameter.getName();
    }

    ProxyUtii.proxyMethod1(method.getName());

    Object invoke = method.invoke(obj, args);

    ProxyUtii.proxyMethod2(method.getName());

    return invoke;
    }

    }

    package proxy;

    import java.lang.reflect.Proxy;

    public class MyProxy {

    public static Object getProxyInstance(Object obj) {

    MyInvocation mi = new MyInvocation();

    mi.setObj(obj);

    Object newProxyInstance = Proxy.newProxyInstance(obj.getClass().getClassLoader(),
    obj.getClass().getInterfaces(),mi);

    return newProxyInstance;

    }

    }

    package proxy;

    public class ProxyUtii {

    public static void proxyMethod1(String str) {
    System.out.println("开始执行sql方法:"+str+"****************************************");
    }


    public static void proxyMethod2(String str) {
    System.out.println("结束执行sql方法:"+str+"****************************************");
    }

    }

    public static void main(String[] args) {

    Object proxyInstance = MyProxy.getProxyInstance(pmaunewMapperImpl);

    PmaunewMapper pm = (PmaunewMapper) proxyInstance;

    List<Pmaunew> selectTest = pm.selectTest();

    }

  • 相关阅读:
    CF1394A Boboniu Chats with Du 题解
    P3377 【模板】左偏树(可并堆)题解
    P2152 [SDOI2009]SuperGCD 题解
    在其他模块中调用代码
    教程:创建Go模块
    Go入门
    反悔贪心
    codeforces 1569 E. Playoff Restoration (meet-in-the-middle)
    codeforces 1036 F. Relatively Prime Powers (容斥+精度处理+大数边界处理)
    icpc沈阳2020 H. The Boomsday Project (dp+二分)
  • 原文地址:https://www.cnblogs.com/cw828/p/11031308.html
Copyright © 2011-2022 走看看