Я использую MarshallingMessageConverter
в качестве реализации MessageConverter
bean.Я использую Jaxb2Marshaller
как реализацию класса org.springframework.oxm.Marshaller
.Я устанавливаю классы для привязки следующим образом:
marshaller.setClassesToBeBound(new Class[]{Class1.class,Class2.class})
Также я могу устанавливать классы с помощью класса JAXBContext
и получать Marshaller и Unmarashaller:
JAXBContext.newInstance(Class1.class,Class2.class)
jaxbContext.createMarshaller();
jaxbContext.createUnmarshaller();
Это похоже на Jaxb2Marshaller
, потому что оно имеет внутреннее поле JAXBContext
.Создание нового JAXBContext для каждого запроса синтаксического анализа очень дорого.
Мой вопрос: если я объявлю Marshaller
, используя Jaxb2Marshaller
, все классы, которые будут связаны в этом вызове marshaller.setClassesToBeBound(new Class[]{Class1.class,Class2.class})
, будут повторно использоваться в каждом запросе синтаксического анализаи будет потокобезопасным, или JAXBContext
из этого класса будет создаваться снова для каждого запроса?Я использую это Jaxb2Marshaller
как Bean
.