是否可以实例化 Jaxb 一次,并在所有 Apache Camel 路由中使用它?

Is it possible to instantiate Jaxb once, and use it in all Apache Camel routes?

我有一条路线以 marshal 结束,进入 xml,使用 Jaxb。整个路由只需要几毫秒,直到必须实例化 Jaxb 上下文的时间:

JAXBContext jaxbContext = JAXBContext.newInstance(VVTMPUSH.class);

这个小方法大约需要两秒钟。并且每次使用路由时都会调用它,每秒应该在100次左右。 是否可以只实例化 Jaxbcontext 一次,并在每个路由中使用相同的对象?

谢谢!

我将原来的 process 一分为二,从方法中删除了 Jaxb 的初始化,将其添加到 camel 路由并创建了一个新的 process_2 来延续之前 process_1

JaxbDataFormat jaxb = new JaxbDataFormat("add.your.namespace.to.the.ObjectFactory");
jaxb.setPrettyPrint(true);

from("seda:out?concurrentConsumers=20")
    .process(new process_1())
    .marshal(jaxb)
    .process(new process_2());