簡體   English   中英

Jaxb2Marshaller如何保存JAXBContext

[英]Jaxb2Marshaller how it holds JAXBContext

我使用MarshallingMessageConverter作為MessageConverter bean的實現。 我正在使用Jaxb2Marshaller作為org.springframework.oxm.Marshaller類的org.springframework.oxm.Marshaller 我將類設置為以這種方式綁定:

marshaller.setClassesToBeBound(new Class[]{Class1.class,Class2.class})

我也可以使用JAXBContext類設置類,並檢索Marshaller和Unmarashaller:

JAXBContext.newInstance(Class1.class,Class2.class)
jaxbContext.createMarshaller();
jaxbContext.createUnmarshaller();

這類似於Jaxb2Marshaller因為它具有JAXBContext內部字段。 為每個解析請求創建新的JAXBContext非常昂貴。

我的問題是:如果我使用Jaxb2Marshaller聲明Marshaller ,則此調用中要綁定的所有類marshaller.setClassesToBeBound(new Class[]{Class1.class,Class2.class})將在每個解析請求中重用,並且是線程安全的,還是將為每個請求從此類創建JAXBContext 我將此Jaxb2Marshaller用作Bean

根據JAXB規范-JAXBContext是線程安全的。 不應使用Marshaller和Unmarshaller,並且每次使用時都應該創建Marshaller和Unmarshaller,或者應使用某種線程安全服務將其包裝以同步對Marshaller和Unmarshaller的訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM