spring持久類po或者javabean爲什麼常常實現序列化?

無論用hibernate或者mybatis結合spring做開發還是其他,系統裏持久類往往要實現序列化, implements Serializable。我還是比較好奇,爲什麼要這樣做呢?一直只知道個大概,學習hibernate和mybatis時,一些書中有幾個字的介紹,有的書中舉得例子或者和spring整合時舉得例子也沒實現序列化,有時可能在你項目上,如果不是實現serializable接口,可能系統也會正常不會出現錯誤。
終於有這個時間自己查查這個原因了,翻翻書,看看網頁,針對這個問題資料還是比較少的,不過本人也瞭解到了一些,對po實現序列化有了更深的瞭解,爲什麼要實現序列化原因總結如下:
1、Hibernate使用組件作爲複合主鍵時,該組件類必須滿足一個條件就是:實現java.io.serializable接口。
2、MyBatis中配置緩存時,持久層需實現序列化。緩存元素有個readOnly屬性,readOnly屬性可以被設置爲 true 或 false。只讀緩存將對所有調用者返回同一個實例。因此都不能被修改,這可以極大的提高性能。可寫的緩存將通過序列化來返回一個緩存對象的拷貝。這會比較慢,但是比較安全。所以默認值是 false。
3、持久存儲,將對象的狀態保存在存儲媒體中以便可以在以後重新創建出完全相同的副本。
4、按值封送,尤其是在分佈式系統中。如果對象標記爲 Serializable,則該對象將被自動序列化,並從一個應用程序域傳輸至另一個應用程序域,然後進行反序列化,從而在第二個應用程序域中產生出該對 象的一個精確副本。
轉載請註明—作者:Java我人生(陳磊興) 原文出處:http://blog.csdn.net/chenleixing/article/details/43833413

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章