在以往的开发中,我们都是以面向对象的方式来进行软件开发,特别是javabean,我们通长都是根据表结构在开发前就编写完的类,这些类一旦表结构改变,就要重新修改,而且是代码的联动修改,往往修改一个字段都会带来很大一部分的工作量,对一个较大的程序的修改会造成了很大的压力,因为项目的开发周期往往都比较紧迫,所以,针对这种改动比较频繁的功能,尽量将代码灵活化,那么,如何让代码灵活呢?我原来的思路是动态修改现有的javabean对象,但是我发现实现起来难度大,效率低,而且修改后需要重新编译,问题好多,所以没有可行性。那么换一种方式,那就是通过Apache提供的BeanUtils来进行实现,BeanUtils提供了“动态类”的相关实现方式,可以满足我们的需求,具体应用如下.
import java.util.HashMap; import org.apache.commons.beanutils.BasicDynaClass; import org.apache.commons.beanutils.DynaBean; import org.apache.commons.beanutils.DynaProperty; public class ByBeanDemo { public static void main(String[] args) throws IllegalAccessException, InstantiationException { DynaProperty[] props = new DynaProperty[] { new DynaProperty("address", java.util.Map.class), new DynaProperty("subordinate", String.class), new DynaProperty("firstName", String.class), new DynaProperty("lastName", String.class) }; BasicDynaClass dynaClass = new BasicDynaClass("employee", null, props); DynaBean employee = dynaClass.newInstance(); employee.set("address", new HashMap()); employee.set("subordinate", "dsada"); employee.set("firstName", "Fred"); employee.set("lastName", "Flintstone"); System.out.println(employee.get("firstName")); } }
通过以上代码实现,相信大家已经能够理解动态类对我们实际的生产所带来的效率又多高了,他通过反射来实现,性能影响不大,对数据量要求不高的应用完全可以适用,通过BeanUtils可以解决实际中的大部分问题,如果有需要的可以拿走,如果有不足的还希望高人能够给予指点。
时间: 2024-10-30 03:37:27