易截截图软件、单文件、免安装、纯绿色、仅160KB

java动态代理

定义动态代理类DynamicProxy
package com.zte.adc.common;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class DynamicProxy implements InvocationHandler {
 private Object object;
 // 绑定关系,也就是关联到哪个接口(与具体的实现类绑定)的哪些方法将被调用时,执行invoke方法。
 // Proxy.newProxyInstance的第三个参数是表明这些被拦截的方法执行时需要执行哪个InvocationHandler的invoke方法
 public Object bindRelation(Object object) {
  this.object = object;
  return Proxy.newProxyInstance(object.getClass().getClassLoader(),
    object.getClass().getInterfaces(), this);
 }
 // 拦截关联的这个实现类的方法被调用时将被执行,只要是代理的类执行方法 首先经过invoke方法
 public Object invoke(Object proxy, Method method, Object[] args)
   throws Throwable {
  if ("queryForList".equals(method.getName()) && args.length == 4) {
   args[2] = (Integer) args[2] - 1;
  }
  Object result = method.invoke(object, args);
  return result;
 }
}
获得动态代理的代理对象 注意动态代理返回的对象必须是被代理对象的接口
 public SqlMapClientTemplate sqlTemplate1 = this.getSqlMapClientTemplate();
 public SqlMapClientOperations sqlTemplate=null;//这里1
 private DynamicProxy dp = new DynamicProxy();
 {
  sqlTemplate= (SqlMapClientOperations)dp.bindRelation(sqlTemplate1);
 }
 
 public BaseSqlMapDao() {
 }
如果在 “这里1”中用的不是SqlMapClientTemplate 的借口 而是直接用的SqlMapClientTemplate  那么
就会抛出异常
 
动态代理的原理就是通过动态代理类DynamicProxy 生成了一个新的对象 Proxy对象
该新对象继承的接口就是原对象的接口,产生的新对象并不是源对象的实例 而是产生的代理对象的实例


相关文档:

JAVA调用外部进程最佳实践版组件

package com.allywll.core.exec.base;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent. ......

JAVA NIO学习笔记 缓冲区的内部细节

缓冲区内部细节
状态变量
状态变量是前一节中提到的"内部统计机制"的关键。每一个读/写操作都会改变缓冲区的状态。通过记录和跟踪这些变化,缓冲区就能够内部地管理自己的资源。
可以用三个值指定缓冲区在任意时刻的状态:
position
limit
capacity
Position
缓冲区实际上就是美化了的数组。在从通道读取时,您 ......

Java相对路径读取文件


不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的。
 
项目的文件夹结构:
repathtest 
├─src 
│    └─com 
│        &nb ......

JAVA类实现序列化的方法是?

Java中通过implements Serializable来实现对象的序列化。其实Serializable接口中并没有需要实现的方法,注明某个类implements Serializable只是为了标识或表明这个类可以被序列化。
       那么什么是序列化呢,序列化又有什么作用呢?
       一个类,或 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号