updar - JavaBean 工具


Apache
跨平台
Java

软件简介

upDar 是 JavaBean 工具
:为更简洁的操作javaBean,对javaBean进行简单设置即可达到目的,减少对javaBean操作冗余代码。

演示例子

依赖的jar包

1. json-lib-2.4-jdk15.jar

2. commons-beanutils-1.8.3.jar

3. commons-collections-3.1.jar

4. commons-lang-2.4.jar

5. commons-logging-1.1.1.jar

6. ezmorph-1.0.6.jar

为什么要做这个东西

在以往开发中,我使用的是ssh框架,有个问题一直让我很疑惑,到底该怎么实现.

当我们update操作的时候,有时并不需要把一个model的所有属性都去更新,例如状态等信息是不能被update的.

但是,用ssh在前台传入参数保存到action中后,model中的属性是不可预估的,有可能存在不能更新的属性,但是当使用hibernate的update方法时,那么整个对象的全部属性都被update.会出现很多问题

起初我的解决方法是,在数据库中查出需要修改的model对象,把需要更改的属性一个个set进去.结果大量冗余代码出现.于是放弃这种写法.

使用org.springframework.beans.BeanUtils.copyProperties(Object source, Object
target, String[]
ignoreProperties)方法,这个方法的作用是,ignoreProperties中存放了不可被修改的属性名,source是需要被修改的model,target是提供修改数据的model.

起初很好用,可后来发现一个问题,有一个用户对象,我们已经对他写好了update方法,并用copyProperties方法对model进行了更新,可随着项目的扩大,用户中需要增加一个属性,但是之前的update方法不可修改这个属性,显然,我们已经记不得再哪使用了copyProperties方法了,我们不能逐个去修改ignoreProperties参数.

于是我觉得应该需要一种更好的方式去解决updateModel的问题了.这样我就写出了一些代码,用来分享给大家.

思路

对model的属性进行分组,这样当更新model的时候,只需要传入需要修改的model 和提供数据的model 和需要更新属性的分组名称即可.

设置分组方式:通过注解方式,在model属性的set方法上添加注解,以标注该属性所属分组名称.这样当update方法写好后,若出现任何model属性变化,属性名变化都只需要更改model的
注解配置即可,无需修改update方法.

以这种思路去解决updateModel的问题,我觉得是再好不过,而本工具则实现了这一解决方案.