动态构造 Java 类的一种方法: javassist (3)
2007-09-25 12:15
645 查看
http://blog.csdn.net/loveyly/archive/2007/09/21/1794927.aspx 第一部分
http://blog.csdn.net/loveyly/archive/2007/09/21/1794971.aspx 第二部分
动态构造 Java 类, 还有个作用就是性能的提升. 巧用这个方法, 会大大的提升系统的性能. 我举个例子, OGNL2.7 版本中就是用 javassist 构造对象的访问代码, 将以前涉及到大量同步操作的代码全部去掉了. 这样一来, 访问对象就是直接调用一个类的方法, 没有任何反射在里面, 性能非常好.
对于性能提升, 这里主要运用到的是将很多通过反射或者 Java Bean Property 的操作封装成一个可以直接调用的 Java 代码. 一般来说, 这个封装类会实现一个接口, 然后调用者直接调用这个接口的某个方法去访问数据对象的某个成员变量.
也就是将一个本来不知道类型的对象实例, 封装成了一个统一的访问接口实现. 这也是用好动态 Java 生成技术的一个思路. 不过一定要注意, 这个接口定义一定是某个模块内部的. 比如 OGNL , 这个接口就只会在模块内部使用.
这个思路可以运用到其他很多地方. 希望大家能多多提供应用实践. 呵呵
http://blog.csdn.net/loveyly/archive/2007/09/21/1794971.aspx 第二部分
动态构造 Java 类, 还有个作用就是性能的提升. 巧用这个方法, 会大大的提升系统的性能. 我举个例子, OGNL2.7 版本中就是用 javassist 构造对象的访问代码, 将以前涉及到大量同步操作的代码全部去掉了. 这样一来, 访问对象就是直接调用一个类的方法, 没有任何反射在里面, 性能非常好.
对于性能提升, 这里主要运用到的是将很多通过反射或者 Java Bean Property 的操作封装成一个可以直接调用的 Java 代码. 一般来说, 这个封装类会实现一个接口, 然后调用者直接调用这个接口的某个方法去访问数据对象的某个成员变量.
也就是将一个本来不知道类型的对象实例, 封装成了一个统一的访问接口实现. 这也是用好动态 Java 生成技术的一个思路. 不过一定要注意, 这个接口定义一定是某个模块内部的. 比如 OGNL , 这个接口就只会在模块内部使用.
这个思路可以运用到其他很多地方. 希望大家能多多提供应用实践. 呵呵
相关文章推荐
- 动态构造 Java 类的一种方法: javassist (2)
- 动态构造 Java 类的一种方法: javassist (1)
- 动态构造 Java 类的一种方法: ClassLoader 的设计 (4)
- 一种基于java的web动态安全漏洞检测方法
- Java 反射:Class类,动态加载类获取方法和成员变量构造信息,方法反射的基本操作,集合泛型的本质
- Java 将字符串动态生成字节码的一种方法
- 字节码操作_javassist库_动态创建新类_属性_方法_构造器_API详解JAVA216-217
- Java 将字符串动态生成字节码的一种方法
- 关于java中子类,父类中,静态代码块: staic{},动态代码块:{},构造方法,类属性,对象属性等执行顺序做个总结:
- 一种Java运行时动态生成class的方法
- java后台构造easyui的tree数据的一种方法
- Launcher中动态加载APK出现java.lang.SecurityException异常的解决方法(二)
- java之构造方法创建JFrame
- 浅谈标签和JLabel类构造方法[原创]_java_脚本之家
- Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
- Java构造和解析Json数据的两种方法详解一
- Java---java中构造方法及其作用
- java-构造方法
- java中关于子类实例化时调用父类无参构造方法的问题
- Java实现时间动态显示方法汇总