- Spring OXM 教程
- Spring OXM - 首頁
- Spring OXM - 概述
- Spring OXM - 環境設定
- Spring OXM & JAXB
- Spring OXM - 建立專案
- Spring OXM - 更新專案 JAXB2
- Spring OXM - 測試 JAXB2
- Spring OXM & XStream
- Spring OXM - 更新專案
- Spring OXM - 測試 XStream
- Spring OXM & Castor
- Spring OXM - 更新專案
- Spring OXM - 測試 Castor
- Spring OXM 有用資源
- Spring OXM - 快速指南
- Spring OXM - 有用資源
- Spring OXM - 討論
Spring OXM - 概述
Spring 框架使用全域性編組器/解組器介面提供物件/XML 或 O/X 對映,並允許輕鬆切換 O/X 對映框架。將物件轉換為 XML 的過程稱為 XML 編組/序列化,而從 XML 轉換為物件的過稱為 XML 解組/反序列化。
Spring 框架提供Marshaller 和 UnMarshaller 介面,其中 Marshaller 介面負責將物件編組到 XML,而 UnMarshaller 介面將 xml 解組到物件。以下是使用 Spring OXM 框架的主要優點。
輕鬆配置 − 使用 Spring bean 上下文工廠,建立編組器/解組器非常容易,並且可以配置,而無需擔心 O/X 庫結構,如 JAXB 上下文、JiBX 繫結工廠等。編組器/解組器可以像任何其他 bean 一樣進行配置。
一致的介面 − Marshaller 和 UnMarshaller 是全域性介面。這些介面為其他 O/X 對映框架提供了一個抽象層,允許在它們之間切換而無需更改程式碼或只需少量程式碼更改。
一致的異常處理 − 所有底層異常都對映到 XmlMappingException 作為根異常。因此,開發人員無需擔心底層 O/X 對映工具自己的異常層次結構。
Marshaller
Marshaller 是一個具有單個方法 marshal 的介面。
public interface Marshaller {
/**
* Marshals the object graph with the given root into the provided Result.
*/
void marshal(Object graph, Result result)
throws XmlMappingException, IOException;
}
其中 graph 是任何要編組的物件,result 是一個標記介面,用於表示 XML 輸出。以下是可用的型別:
javax.xml.transform.dom.DOMResult − 表示 org.w3c.dom.Node。
javax.xml.transform.sax.SAXResult − 表示 org.xml.sax.ContentHandler。
javax.xml.transform.stream.StreamResult − 表示 java.io.File、java.io.OutputStream 或 java.io.Writer。
UnMarshaller
UnMarshaller 是一個具有單個方法 unmarshal 的介面。
public interface UnMarshaller {
/**
* Unmarshals the given provided Source into an object graph.
*/
Object unmarshal(Source source)
throws XmlMappingException, IOException;
}
其中 source 是一個標記介面,用於表示 XML 輸入。以下是可用的型別:
javax.xml.transform.dom.DOMSource − 表示 org.w3c.dom.Node。
javax.xml.transform.sax.SAXSource − 表示 org.xml.sax.InputSource 和 org.xml.sax.XMLReader。
javax.xml.transform.stream.StreamSource − 表示 java.io.File、java.io.InputStream 或 java.io.Reader。