- public static Object getProxy(final Object target,final Advice1 advice){
- Object proxy = Proxy.newProxyInstance(target.getClass().getClassLoader(),
- target.getClass().getInterfaces(),
- new InvocationHandler() {
-
- @Override
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- /修改传入的参数
- if(args != null && args.length != 0){
- System.out.println(args.length);
- args[0] = args[0] + "我是代理加进去的参数";
- }
- advice.beforeMethod(method);
- Object retVal = method.invoke(target, args);
- advice.afterMethod(method);
- // TODO 自动生成的方法存根
- return retVal;
- }
- }
- );
- return proxy;
- }
复制代码 对于代理的参数一直都不太明白,target为什么一定要是接口
|