动态构造 Java 类的一种方法: javassist (2)
来源:互联网 发布:男士双肩包品牌 知乎 编辑:程序博客网 时间:2024/05/29 19:14
http://blog.csdn.net/loveyly/archive/2007/09/21/1794927.aspx 第一部分
接下来,我来举一个例子. 我们经常使用 Java Bean 来装载业务对象数据, 但是这里有一个需求就是, 对于不同的应用场景, 可能某个业务对象所包含的属性不一样, 也就是 Java Bean 中的 Property 可能不确定, 可能增加, 也可能删除一个或者多个属性. 如果开发人员自己开发这个 Java Bean 可能是无法满足这个需求了. 这里通过javassist 来动态生成 Java Bean 对象, 就是一个比较好的方法.
这里需要强调几点: 1. 我们需要确保 ClassLoader 装载所有的动态生成类时, 也可以访问普通的途径的 Java 类; 2. 因为涉及到新的Class取代旧的Claas, 需要及时通过释放 CtClass 来确保不因为其缓存导致内存不段被无限制的使用; 3. 这里动态生成 Java Bean 主要是针对动态属性的支持, 那么这就需要应用是在这样的场景下使用此特性的: 对象属性更新不是很频繁(一般也不会). 不然就会有性能问题.
这里一般会有一个业务对象模块, 对象的生成都是在该模块内部进行的, 所有使用该模块获取的对象, 都已经是一个普通的 Java Bean 对象了.
通过这个方法, 可以让业务开发人员只关心业务对象定义, 具体的 Java 类就有系统自动生成, 既灵活又方便.
- 动态构造 Java 类的一种方法: javassist (2)
- 动态构造 Java 类的一种方法: javassist (1)
- 动态构造 Java 类的一种方法: javassist (3)
- 动态构造 Java 类的一种方法: ClassLoader 的设计 (4)
- Javassist 动态生成类
- java后台构造easyui的tree数据的一种方法
- 5.3--类的一种特殊的--成员方法--构造方法
- Java动态编程之javassist
- Java 编程的动态性, 第4部分: 用 Javassist 进行类转换
- Java 编程的动态性, 第四部分: 用 Javassist 进行类转换
- Java 编程的动态性, 第4部分: 用 Javassist 进行类转换
- Java 编程的动态性, 第四部分: 用 Javassist 进行类转换
- javassist学习:动态创建二进制Java类二进制字节码并通过反射调用的示例
- java 使用javassist 动态修改注解的值
- java动态代理(类加载、asm、cglib、javassist)
- Javassist的动态代理实现。
- Java 将字符串动态生成字节码的一种方法
- Java 将字符串动态生成字节码的一种方法
- 一个可以加快Oracle查询语句性能的可能方法
- TFTP class TFTP 实现类
- 在EVC下使用STL时的警告处理方法
- Paul Potts 不用多说了。听着就可以了
- C++堆、栈、自由存储区、全局/静态存储区和常量存储区
- 动态构造 Java 类的一种方法: javassist (2)
- C++5×5断想之五:我之C++拍案惊奇
- programming ruby 2nd学习笔记
- [wayfarer]PetShop数据访问层之消息处理
- socket使用
- Oracle 9.2下的“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”
- JAVA操作JDOM
- Tomcat5+Mysql文中乱码问题的解决方法
- ACE_IPC_SAP的封装