![](/img/trans.png)
[英]Jaxb2Marshaller creating JAXBContext with empty namespace URI
[英]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.