本帖最后由 施大勇 于 2013-9-28 15:37 编辑
- public static Object getProxy(final Object obj, final Advice adv) {//参数为动态代理的类对象及额外的内容。
- Object proxy = Proxy.newProxyInstance(obj.getClass().getClassLoader(),
- obj.getClass().getInterfaces(),
- new InvocationHandler() {
- @Override
- public Object invoke(Object proxy, Method method,
- Object[] args) throws Throwable {
- //invoke()方法三个参数的意义,proxy - 在其上调用方法的代理实例,
- //它指的是被代理的类的实例吗?如果是就与方法中传入的final Object obj指的是同一对象。????????????
- // System.out.println("+++++++++++++++++++++++++++++++++++");
- adv.before(method);
- Object ob = method.invoke(obj, args);
- // System.out.println("-----------------------------------");
- adv.after(method);
- return ob;
- }
- });
- return proxy;
- }
复制代码 |