2
我有web应用程序,其中我有从xsd模式生成的类。 我正在创建一个Marshaller实例和一个Unmarshaller实例作为应用程序启动时的静态最终字段。JAXB一个Marshaller实例和每个应用程序的Unmarshaller实例
我想知道这是好的做法,还是更好地创建每个需求的独立实例?
我有web应用程序,其中我有从xsd模式生成的类。 我正在创建一个Marshaller实例和一个Unmarshaller实例作为应用程序启动时的静态最终字段。JAXB一个Marshaller实例和每个应用程序的Unmarshaller实例
我想知道这是好的做法,还是更好地创建每个需求的独立实例?
缓存Marschaller
和Unmarshaller
不是一个好主意。改为缓存JAXBContext
。
JAXBContext
可能会被重复使用来创建marshallers和unmarshallers。
Marshaller
和Unmarshaller
实例不是(必然)是线程安全的或可重用的。
我会查找参考资料并更新答案。
这里的reference:
的的JAXBContext类是线程安全的,但现Marshaller, Unmarshaller的,和验证类不是线程安全的。
相关答案:
的Marshaller和Unmarshaller的可重复使用 – Rustam 2017-05-03 08:16:31
@Rustam需要的引证。 – lexicore 2017-05-03 12:47:21
从您的第一个链接开始:“只要您不同时使用两个线程中的一个实例,不同线程就可以重用一个Unmarshaller实例。” – Rustam 2017-05-04 13:25:03