Como melhorar o desempenho do aplicativo que usa a operação JAXBContext.newInstanc
Uso a operação JAXBContext.newInstance no meu aplicativo Web baseado em JBoss. Esta operação, como eu entendo, é muito pesada. Eu só preciso de duas instâncias exclusivas da classe Marshaller.
Minha proposta inicial é ter um bloco inicializador estático que inicialize essas duas instâncias apenas uma vez após o carregamento da classe:
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(...);
...
}
}
Se for uma solução razoável, acho que terei respondido minha própria pergunta, mas gostaria de saber se esta é a maneira correta de fazer isso.