Saya menggunakan operasi JAXBContext.newInstance di aplikasi web berbasis JBoss saya. Operasi ini, setahu saya, sangat berat. Saya hanya memerlukan dua instance unik dari kelas Marshaller.
Proposal awal saya adalah memiliki blok penginisialisasi statis yang akan menginisialisasi dua contoh ini hanya sekali saat kelas dimuat:
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(...);
...
}
}
Jika ini adalah solusi yang masuk akal maka saya kira saya akan menjawab pertanyaan saya sendiri, tapi saya ingin tahu apakah ini cara yang benar untuk melakukan ini?