如何提高使用 JAXBContext.newInstance 操作的应用程序的性能?
我在基于JBoss的Web应用程序中使用JAXBContext.newInstance操作。据我所知,这次行动是非常重量级的。我只需要马歇尔类的两个唯一实例。
我最初的建议是有一个静态初始值设定项块,该块仅在类加载时初始化这两个实例一次:
public class MyWebApp {
private static Marshaller requestMarshaller;
private static Marshaller responseMarshaller;
static {
try {
// one time instance creation
requestMarshaller = JAXBContext.newInstance(Request.class).createMarshaller();
responseMarshaller = JAXBContext.newInstance(Response.class).createMarshaller();
} catch (JAXBException e) {
e.printStackTrace();
}
}
private void doSomething() {
requestMarshaller.marshall(...);
responseMarshaller.marshall(...);
...
}
}
如果这是一个合理的解决方案,那么我想我会回答我自己的问题,但我想知道这是否是正确的方法?