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");