當前位置:成語大全網 - 書法字典 - —MetaObject(反射對象類),mybatis的反射工具類。

—MetaObject(反射對象類),mybatis的反射工具類。

MeatObject是Mybatis的壹個工具類,通過元對象獲取和設置對象的屬性值。

返回結果:

基本pojo對象:

元對象提供了壹個工具類:

當調用SystemMetaObject獲取元對象時,new DefaultReflectorFactory()每次都會創建壹個反射工廠類。

繼續查看:

這個類不做復雜的操作,就是獲取對象的類型並存儲在地圖中。當同壹個對象調用forObject()時,後續調用可以獲取緩存中的反射對象。

但是註意:SystemMetaObject方法每次都會創建壹個新的DefaultReflectorFactory工廠。如果每次在方法中調用SystemMetaObject.forObject來獲取元對象。同壹對象不能被緩存。

推薦做法:將DefaultReflectorFactory聲明為靜態變量:

創建元對象時,將緩存傳入對象的所有反射對象。調用metaObject.setValue等方法時,直接從緩存中獲取反射對象,然後執行反射操作。

創建元對象對象時,選擇不同的包裝器來包裝它。

以壹個普通的pojo為例,創建壹個BeanWrapper對象,對象的所有方法都會在forClass方法中被遍歷。獲取反射對象。

這裏:

到達這裏,判斷緩存中是否有對象的解析結果:

註意:MetaObject.forObject將緩存對象的結果,該結果將在使用MetaObject.forObject創建對象時直接從緩存中獲取。

如果不存在,調用新的反射器(類型);創建緩存對象。

壹般方法:

2.刪除方法的前綴並獲得屬性名:

3.鍵是屬性名,值是集合:

4.將局部變量放入屬性集:

5.將其放入屬性變量中

設置分詞系統:

blogs . com/Java developer/archive/2004/01/13/13151682 . html