Spring 是根据配置文件在运行时生成bean对象的,其基本原理是用了Java 的refelection机制,我们看看java简单实现一个动态设置属性的例子

Class cls=Class.forName("com.entiy.User");

Method method
=cls.getMethod("SetName",Class []{String.class});

   Object obj
=cls.newInstance();
 method.invoke(obj,
new Object[]{"Erica"})

    
return obj;        //设置属性后返回对象(只配置一次)


上面我们同过refelection动态的调用了User对象的SetName()方法设置其name属性。假设这些属性都是通过配置文件读入的,则我们实现了一个最简单的BeanWrapper。

spring 的BeanWrapper源理相信大家也大体对比中有了理解
Class cls=Class.forName("com.entiy.User");
Object obj
=cls.newInstance();

BeanWrapper bw
=new BeanwrapperImp(obj);
bw.setProperty(
"name","Eriica");