快速业务通道

数据库中数据项变化不定时如何设计Java Beans - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
性是这个动态Bean对外界的宣布的"访问协议"。

从上面的代码可以看出动态属性Dynaproperty的主要构造函数接受两个参数:第一个为属性名称,为字符串性,第二个为属性的类型,为Class类型。从配置文件读取的资料普通为字符串型,我们可以用ClassLoader把配置文件中字符串型的属性类型转化成Class类型的属性类型。

下面struts 1.1 中struts-example.war的 formbeans.xml中的片断体现了如何在配置文件中定一个动态bean的动态属性:

<form-bean name="logonForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="username" type="java.lang.String"/> <form-property name="password" type="java.lang.String"/> </form-bean>

下面RequestUtils的代码片断体现了如何从字符串表示的属性类型转化成Class型的属性类型:

public static Class applicationClass(String className)      throws ClassNotFoundException {      // Look up the class loader to be used      ClassLoader classLoader =        Thread.currentThread().getContextClassLoader();      if (classLoader == null) {        classLoader = RequestUtils.class.getClassLoader();      }      // Attempt to load the specified class      return (classLoader.loadClass(className));    }

这就是关于动态bean的所有奥秘,RequestUtils类代码片断public static ActionForm createActionForm就是这样创建动态bean的。

结语

我们说Java Bean所能支持的属性如相关属性和约束属性是其它组件技术所不能及的,这是非常先进的设计观念和模式。但是标准Java Bean属性是静态的,是在编译时决定的,不能满足变化不定的企业数据项的需求。扩展Java Bean属性机制提供了很好的思想,它不以Bean的List或Map成员看成一个整体属性,而把其中的动态元素看成属性,而且提供了脚本式的属性访问方法,从而为运行时动态管理(增,删和改)属性铺平了道路。动态属性继续发扬了扩展Java Bean属性机制的思路,考虑到增加程序的健壮性,保留了静态属性的类型检查机制,另外动态属性和属性配置文件结合可以提供良好的"静态和动态"平衡点,保证了动态Bean的动态属性不会漫无边际的扩张,这种动态性是有"章"可循的。

图二 三种属性机制的关系图

数据库中数据项变化不定时如何设计Java Beans - 编程入门网

这三种属性机制的关系图表明了它们之间的这种依赖和发展关系;扩展Java Bean属性机制和动态属性机制都可以很好地解决数据项变化的需求。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号