位于net.sf.clearwork.core.utils包中。
工具名称 | 功能说明 |
---|---|
MessageUtils |
国际化工具类,获取国际化的消息资源,依赖于
spring.xml
中的
messageSource
Bean。
|
ResourceUtils |
系统应用资源类,用于获取系统的资源和一些路径,这包括应用的相对路径和系统的绝对路径。
支持regString参数查询,例如:
|
SpringContextUtils | Spring上下文工具,主要提供getBean、getContext等功能 |
TestUtils | 提供一些调试的常用方法 |
BeanUtils | Java Bean操作工具。它提供: 获取、设置私有属性; 执行私有方法; 获取超类; 获取类型的域名形式(即包名倒序)及其对应的XML Schema表示; 验证POJO(纯洁的Java对象,在Web Service中使用)类型等静态方法。 |
DateUtils | 时间日期的工具类,提供常用的时间日期操作方法,可以看作是apache commons相应工具的有益补充。 |
NumberUtils | 数值操作的工具类,提供常用的数值操作、格式化方法,可以看作是apache commons相应工具的有益补充。 |
StringUtils | 提供常用的字符串操作方法,也包括字符编码转换、 HTML的encode/decode、URL的encode/decode等功能。 |
UniqueIdUtils / UUIDHexGenerator / UUIDUtils | 这三种唯一ID生成工具可以在100~150线程并发的情况下安全的产生不重复的ID, 其格式分别为: XXXXXXXX-XXXXX / 32位字符串 / 49位字符串 。源代码内置多线程测试的main方法,可以根据测试的结果和系统的需求选择使用。 |
ImageUtils | 图片处理工具,提供对类型 ImageFormat 枚举的图片格式的处理, 支持缩放、按比例缩放、缩略图、转存、获取图片信息、添加水印文字或图形等功能。 水印位置可参考枚举 WatermarkLayout 类。 |
DESUtils / RSAUtils / MD5Utils / SHAUtils | 提供这四种加密算法的支持,可用于密码字符串加密。 注意:前两者是可逆的加密算法;后两者不可逆,即加密后无法解密。 |
WebUtils | 继承自 org.springframework.web.util.WebUtils ,提供一些web层的通用工具方法。 |
XmlUtils | 利用 W3C API构建的标准XML操作工具,同时还提供转换GBK编码格式XML文档的方法。 |
解决应用开发中普遍存在的场景——不同值对象之间同名域的注入(对应populate*方法)/拷贝(对应copyProperties*方法)。 populate方法支持将来自HTTP Post的表单数据注入值对象、将来自JDBC RecorderSet的记录集注入值对象、对两个值对象同名属性域值的拷贝等操作。
工具的通用规则:
需要相互注入拷贝的域(field)必须同名,但不区分大小写。
支持nameMapper参数,域名称转换映射
支持ignoreProperties参数,忽略的属性域列表
可以开发插件转化特殊的数据类型,例如默认的DatePopulatePlugin被用来支持如下转换:
<property name="plugins"> <map> <entry key="java.sql.Date->*"> <ref local="datePopulatePlugin" /> </entry> <entry key="java.sql.Timestamp->*"> <ref local="datePopulatePlugin" /> </entry> <entry key="*->java.util.Date"> <ref local="datePopulatePlugin" /> </entry> </map> </property>
它依赖于
spring.xml
中的
populateUtils
Bean。值转化插件需要实现IPopulatePlugin接口。
关于如何开发值转化插件建议参考类
net.sf.clearwork.core.utils.bean.DatePopulatePlugin
的源代码。
支持集合或数组的值对象拷贝。
您可以通过查看Populate Sample( net.sf.clearwork.sample.populateutils.SamplePopulateAction )来具体了解ClearWork值注入工具的应用。
ClearWork框架中获取上下文的入口类型 net.sf.clearwork.core.utils.context.ContextUtils ,它提供三组功能:
getDataChannelContext,获取线程级(即同一线程)的上下文,基本上相当于ThreadLocal这样的容器。
getUserDataContext,获取用户级(即连接Web应用的同一用户)的上下文,基于HttpSession的容器。
getApplicationContext,获取应用级(即整个应用程序全局)的上下文,基于内存中缓存的容器。
拥有了所需的上下文资源(此资源实现 net.sf.clearwork.core.utils.context.IContext 接口)句柄,即可对其进行增删改查等属性操作,例如:将用户信息对象放入用户级上下文;将事务操作对象放入线程级上下文等。