2015-09-30 65 views
4

我已經看到很多關於如何使用不同的框架對java中的POJO進行序列化的問題,但是我想要真正理解首先製作POJO的可序列化的需求。您使用JavaScript來處理POJO對象或Spring或任何其他框架 - 爲什麼我們總是需要製作POJO的Serializable我們爲什麼要在Java中創建POJO的Serializable?

有什麼事情必須建立在一個良好做法最佳實踐做了什麼?

如果不是這樣,我們可以通過序列化POJO類來利用哪些優勢?

有幾條線索討論這個問題,但我對解釋/答案並不滿意!

有人可以在這裏瞭解一下這個概念嗎?

+1

我們只是序列化POJO來保持其狀態跨多個實例或以後使用 –

+1

「爲什麼我們總是必須序列化我們的POJO」我們不這樣做。我從來沒有做。 – Raedwald

+0

道歉,我應該更具體地討論這個問題 - 我並不是指我們創建的每個其他POJO,而只是指那些對商業實體和業務邏輯有很大意義的POJO! –

回答

10

您序列化POJO的時候,你通常需要:

  1. 發送它們通過某種介質(Web服務等)
  2. 商店他們一些媒體上。 (這反過來決定了你將如何存儲它們:XML,二進制等)。

你並不總是要序列化它們,這取決於你在做什麼。例如,如果您有一個具有User對象概念的Web應用程序,其中用戶具有用戶名,並且可能包含一些首選項,那麼使該類可序列化可能沒有意義。但是,如果您暴露了第三方可以提取用戶信息的Web服務,那麼該類將需要可序列化,以便它可以傳輸給第三方。

+0

感謝您的洞察,@npinti!現在有很多意義!我可以引入在集羣APP和WEB環境中使用的場景 - 在兩個APP服務器上覆制這樣的序列化數據,以確保在任何一臺APP服務器出現故障時能夠及時處理這些請求?這是我們可以證實序列化的場景嗎? –

+1

@BPavanKumar:根據我的理解,您需要傳輸和存儲PJO,以便它們可以反序列化和維護。在這種情況下,序列化將起作用。不過我建議你看看是否有任何第三方庫爲你處理這個問題(POJO在應用服務器之間的同步),因爲它可能會變得非常複雜。 – npinti

+0

請澄清'序列化我們的POJO',這就是你所說的,'使我們的POJO'可序列化'',這就是你看起來*的意思,以及在任何情況下是什麼問題。 – EJP

相關問題