Spring 是根據(jù)配置文件在運(yùn)行時(shí)生成bean對(duì)象的,其基本原理是用了Java 的refelection機(jī)制,我們看看java簡單實(shí)現(xiàn)一個(gè)動(dòng)態(tài)設(shè)置屬性的例子
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;????????//設(shè)置屬性后返回對(duì)象(只配置一次)
上面我們同過refelection動(dòng)態(tài)的調(diào)用了User對(duì)象的SetName()方法設(shè)置其name屬性。假設(shè)這些屬性都是通過配置文件讀入的,則我們實(shí)現(xiàn)了一個(gè)最簡單的BeanWrapper。
spring 的BeanWrapper源理相信大家也大體對(duì)比中有了理解
Class?cls=Class.forName("com.entiy.User");
Object?obj=cls.newInstance();

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







??






上面我們同過refelection動(dòng)態(tài)的調(diào)用了User對(duì)象的SetName()方法設(shè)置其name屬性。假設(shè)這些屬性都是通過配置文件讀入的,則我們實(shí)現(xiàn)了一個(gè)最簡單的BeanWrapper。
spring 的BeanWrapper源理相信大家也大體對(duì)比中有了理解






