UnmarshallerHandler优于Unmarshaller的优势是什么?

时间:2014-08-11 11:55:26

标签: java xml jaxb sax

我正在使用JAXB和SAX。我正在使用Unmarshaller来解组数据。提到here,在将JAXB与SAX结合使用时,我们必须使用UnmarshallerHandler而不是Unmarshaller。然后UnmarshallerHandler不是线程安全的。

那么我应该将解组代码包装在如下所示的同步块中吗?

synchronized(this) {
    UnmarshallerHandler unmarshallerHandler = unmarshaller.getUnmarshallerHandler();
    reader.setContentHandler(unmarshallerHandler);
    reader.parse(xml);
    Foo foo = (Foo) unmarshallerHandler.getResult();
}

现在使用UnmarshallerHandler优于Unmarshaller的优势是什么?

1 个答案:

答案 0 :(得分:0)

UnmarshallerHandler的引入使得那些需要使用SAX解析器显式使用JAXB的人很容易(例如,他们需要做一些特定的设置)。当您使用Unmarshaller时,JAXB impl正在处理它认为合适的解析。

除非您有理由使用UnmarshallerHandler,否则您可能会使用Unmarshaller