我在我的基于JBoss的Web应用程序中使用JAXBContext.newInstance操作.据我所知,这个操作非常重.我只需要两个独特的Marshaller类的实例.
我的初始建议是要有一个静态的初始化程序块,它将在类加载时初始化这两个实例一次:
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(...);
...
}
}
如果这是一个合理的解决方案,那么我想我会回答自己的问题,但是我想知道这是否是正确的方法?