我使用以下静态方法实现了一个util类:
public static String objToXml(JAXBContext jaxbContext, ClassA obj) throws Exception{
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, true );
StringWriter writer = new StringWriter();
marshaller.marshal(obj, writer);
return writer.toString();
}
我的理解是JAXB Marshaller和StringWriter都是线程安全的...但我想双重确认我是否实现了这样的静态方法..并且有多个线程同时调用objToXml方法,是否会有任何潜在的问题?
答案 0 :(得分:1)
是的,如果您计划多线程使用它们,则每次都必须创建一个新的Marshaller
。
JAXBContext类是线程安全的,但是Marshaller,Unmarshaller和Validator 类不是线程安全的。