我已经使用以下静态方法实现了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方法,是否有任何潜在的问题?
是的Marshaller,如果计划使用多线程,则必须每次都创建一个新的。
Marshaller
请参阅非官方的JAXB指南
JAXBContext类是线程安全的, 但是Marshaller,Unmarshaller和Validator 类 不是线程安全的 。