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







??






上面我們同過refelection動態的調用了User對象的SetName()方法設置其name屬性。假設這些屬性都是通過配置文件讀入的,則我們實現了一個最簡單的BeanWrapper。
spring 的BeanWrapper源理相信大家也大體對比中有了理解






