【问题标题】:JAXB one Marshaller instance and Unmarshaller instance per application [duplicate]JAXB 每个应用程序一个 Marshaller 实例和 Unmarshaller 实例 [重复]
【发布时间】:2014-10-01 08:31:22
【问题描述】:

我有 Web 应用程序,其中有从 xsd 模式生成的类。 我正在创建一个 Marshaller 实例和一个 Unmarshaller 实例作为应用程序启动时的静态最终字段。

我想知道这是一种好的做法,还是根据需要创建独立的实例更好?

【问题讨论】:

    标签: java jaxb


    【解决方案1】:

    缓存MarschallerUnmarshaller 不是一个好主意。改为缓存JAXBContext

    JAXBContext 可以被重用于创建编组器和解组器。

    MarshallerUnmarshaller 实例不是(必然)线程安全或可重用的。

    我会查找参考资料并更新答案。

    这是reference

    JAXBContext 类是线程安全的,但是 Marshaller, Unmarshaller 和 Validator 类不是线程安全的。

    相关答案:

    JAXB creating context and marshallers cost

    【讨论】:

    • Marshaller 和 Unmarshaller 是可重用的
    • @Rustam 需要引用。
    • 来自您的第一个链接:“不同的线程可以重用一个 Unmarshaller 实例,只要您不同时使用来自两个线程的一个实例。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    相关资源
    最近更新 更多